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