1e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert/*
2e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert * Copyright (C) 2009 The Android Open Source Project
3e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert *
4e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License");
5e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert * you may not use this file except in compliance with the License.
6e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert * You may obtain a copy of the License at
7e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert *
8e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert *      http://www.apache.org/licenses/LICENSE-2.0
9e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert *
10e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert * Unless required by applicable law or agreed to in writing, software
11e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS,
12e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert * See the License for the specific language governing permissions and
14e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert * limitations under the License.
15e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert */
16e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert
17e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringertpackage com.android.quicksearchbox;
18e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert
1996c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringertimport android.content.Context;
2096c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert
21e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert
22e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert/**
23fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Base class for corpus implementations.
24e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert */
25fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringertpublic abstract class AbstractCorpus implements Corpus {
26e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert
2796c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert    private final Context mContext;
2896c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert
2996c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert    private final Config mConfig;
3096c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert
3196c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert    public AbstractCorpus(Context context, Config config) {
3296c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert        mContext = context;
3396c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert        mConfig = config;
3496c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert    }
3596c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert
3696c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert    protected Context getContext() {
3796c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert        return mContext;
3896c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert    }
3996c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert
4096c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert    public boolean isCorpusDefaultEnabled() {
4109552c760ad82eb90795e98de96c65005d6ebafcMathew Inwood        return mConfig.isCorpusEnabledByDefault(this);
4296c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert    }
4396c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert
4496c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert    public boolean isCorpusHidden() {
4596c7058210699c82445169048b7c0fdfb16f59eeBjorn Bringert        return mConfig.isCorpusHidden(getName());
46fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
47e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert
48fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    @Override
49fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public String toString() {
50fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return getName();
51cf2b895b5491c481575d122225a32e95c47abea1Bjorn Bringert    }
52e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert
53fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    @Override
54fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public boolean equals(Object o) {
55fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        if (o != null && getClass().equals(o.getClass())) {
56fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            return getName().equals(((Corpus) o).getName());
57fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        } else {
58fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            return false;
59cf2b895b5491c481575d122225a32e95c47abea1Bjorn Bringert        }
60e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert    }
61e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert
62fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    @Override
63fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public int hashCode() {
64fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return getName().hashCode();
65e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert    }
66e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert
67e72a6418e84a89d2bfd4e9d22282eca95357e0daBjorn Bringert}
68