1f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert/* 2f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * Copyright (C) 2009 The Android Open Source Project 3f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * 4f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License"); 5f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * you may not use this file except in compliance with the License. 6f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * You may obtain a copy of the License at 7f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * 8f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0 9f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * 10f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * Unless required by applicable law or agreed to in writing, software 11f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS, 12f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * See the License for the specific language governing permissions and 14f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * limitations under the License. 15f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert */ 16f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert 17f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringertpackage com.android.quicksearchbox; 18f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert 19f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert 20f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert/** 21f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * Interface for objects that can produce a SuggestionCursor given a query. 22f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert */ 23f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringertpublic interface SuggestionCursorProvider<C extends SuggestionCursor> { 24f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert 25f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert /** 26f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * Gets the name of the provider. This is used for logging and 27f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * to execute tasks on the queue for the provider. 28f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert */ 29f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert String getName(); 30f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert 31f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert /** 32f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * Gets suggestions from the provider. 33f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * 34f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * @param query The user query. 35f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert * @param queryLimit An advisory maximum number of results that the source should return. 36cd1e3ba5f7c3f5242345ff6f674281e3d6366e24Mathew Inwood * @param onlyOne Indicates if this provider is the only one being used for the query. 3793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * @return The suggestion results. Must not be {@code null}. 38f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert */ 39cd1e3ba5f7c3f5242345ff6f674281e3d6366e24Mathew Inwood C getSuggestions(String query, int queryLimit, boolean onlyOne); 40f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert} 41