Searcher.java |
1 /** 2 * Distribution License: 3 * JSword is free software; you can redistribute it and/or modify it under 4 * the terms of the GNU Lesser General Public License, version 2.1 or later 5 * as published by the Free Software Foundation. This program is distributed 6 * in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even 7 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8 * See the GNU Lesser General Public License for more details. 9 * 10 * The License is available on the internet at: 11 * http://www.gnu.org/copyleft/lgpl.html 12 * or by writing to: 13 * Free Software Foundation, Inc. 14 * 59 Temple Place - Suite 330 15 * Boston, MA 02111-1307, USA 16 * 17 * © CrossWire Bible Society, 2005 - 2016 18 * 19 */ 20 package org.crosswire.jsword.index.search; 21 22 import org.crosswire.jsword.book.BookException; 23 import org.crosswire.jsword.index.Index; 24 import org.crosswire.jsword.index.query.Query; 25 import org.crosswire.jsword.passage.Key; 26 27 /** 28 * The central interface to all searching. 29 * 30 * @see gnu.lgpl.License The GNU Lesser General Public License for details. 31 * @author Joe Walker 32 */ 33 public interface Searcher { 34 /** 35 * Setup the index that this parser can use to do word level searches 36 * 37 * @param index 38 * The Index to query for words 39 */ 40 void init(Index index); 41 42 /** 43 * Take a search request and decipher it into a Passage. 44 * 45 * @param request 46 * The request 47 * @return The matching verses 48 * @throws BookException 49 */ 50 Key search(SearchRequest request) throws BookException; 51 52 /** 53 * Take a search request and decipher it into a Passage. 54 * 55 * @param request 56 * The request 57 * @return The matching verses 58 * @throws BookException 59 */ 60 Key search(Query request) throws BookException; 61 } 62