1fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert/* 2fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Copyright (C) 2009 The Android Open Source Project 3fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * 4fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License"); 5fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * you may not use this file except in compliance with the License. 6fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * You may obtain a copy of the License at 7fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * 8fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0 9fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * 10fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Unless required by applicable law or agreed to in writing, software 11fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS, 12fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * See the License for the specific language governing permissions and 14fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * limitations under the License. 15fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert */ 16fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 17fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringertpackage com.android.quicksearchbox; 18fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 1926d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringertimport android.database.DataSetObserver; 20fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 21fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringertimport java.util.Collection; 22b83882b9efa37ec0f20a0f1c85cf5ccc93194aeeBjorn Bringertimport java.util.List; 23fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 24fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert/** 25fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Maintains the set of available and enabled corpora. 26fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert */ 27fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringertpublic interface Corpora { 28fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 29fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert /** 30fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Gets all corpora, including the web corpus. 31fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * 32fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * @return Callers must not modify the returned collection. 33fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert */ 34fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert Collection<Corpus> getAllCorpora(); 35fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 3662adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert /** 3762adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert * Gets all enabled corpora. 3862adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert * 39b83882b9efa37ec0f20a0f1c85cf5ccc93194aeeBjorn Bringert * @return Callers must not modify the returned list. 4062adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert */ 41b83882b9efa37ec0f20a0f1c85cf5ccc93194aeeBjorn Bringert List<Corpus> getEnabledCorpora(); 42fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 43fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert /** 44f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert * Gets all corpora that should be included in the blended All mode. 45f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert * 46f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert * @return Callers must not modify the returned list. 47f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert */ 48f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert List<Corpus> getCorporaInAll(); 49f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert 50f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert /** 51fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Gets a corpus by name. 52fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * 53fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * @return A corpus, or null. 54fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert */ 55fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert Corpus getCorpus(String name); 56fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 5762adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert /** 5862adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert * Gets the web search corpus. 5962adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert * 6062adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert * @return The web search corpus, or {@code null} if there is no web search corpus. 6162adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert */ 62c29c9f854db8fa0c85f17cc32bae33dc17c6b127Bjorn Bringert Corpus getWebCorpus(); 63c29c9f854db8fa0c85f17cc32bae33dc17c6b127Bjorn Bringert 6462adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert /** 6562adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert * Gets a source by name. 6662adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert * 6762adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert * @param name Source name. 6862adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert * @return A source, or {@code null} if no source with the given name exists. 6962adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert */ 7062adab88055fd0ef6779242245cdc8c3ae5f999cBjorn Bringert Source getSource(String name); 71fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 72fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert /** 73fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Gets the corpus that contains the given source. 74fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert */ 75fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert Corpus getCorpusForSource(Source source); 76883c1bf364e38c5b133afb55f8493a14b65f4dd4Bjorn Bringert 77dbdffd8316e75bc2813dbbcbef13d357970e8c84Bjorn Bringert /** 7821bff9bbf4286907b01d3153bff2fbd6b5ec5df8Bjorn Bringert * Updates the corpora. 79dbdffd8316e75bc2813dbbcbef13d357970e8c84Bjorn Bringert */ 8021bff9bbf4286907b01d3153bff2fbd6b5ec5df8Bjorn Bringert void update(); 8126d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert 8226d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert /** 8326d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert * Registers an observer that is called when corpus set changes. 8426d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert * 8526d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert * @param observer gets notified when the data set changes. 8626d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert */ 8726d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert void registerDataSetObserver(DataSetObserver observer); 8826d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert 8926d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert /** 9026d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert * Unregisters an observer that has previously been registered with 9126d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert * {@link #registerDataSetObserver(DataSetObserver)} 9226d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert * 9326d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert * @param observer the observer to unregister. 9426d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert */ 9526d85260316193a1aeff5d407d4f32f5297be012Bjorn Bringert void unregisterDataSetObserver(DataSetObserver observer); 96fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert} 97