1
20 package org.crosswire.jsword.index.search;
21
22 import java.io.IOException;
23
24 import org.crosswire.common.util.PluginUtil;
25 import org.crosswire.jsword.book.Book;
26 import org.crosswire.jsword.book.BookException;
27 import org.crosswire.jsword.index.Index;
28 import org.crosswire.jsword.index.IndexManager;
29 import org.crosswire.jsword.index.IndexManagerFactory;
30 import org.slf4j.Logger;
31 import org.slf4j.LoggerFactory;
32
33
39 public final class SearcherFactory {
40
43 private SearcherFactory() {
44 }
45
46
53 public static Searcher createSearcher(Book book) throws InstantiationException {
54 try {
55 IndexManager imanager = IndexManagerFactory.getIndexManager();
56 Index index = imanager.getIndex(book);
57
58 Searcher parser = PluginUtil.getImplementation(Searcher.class);
59 parser.init(index);
60
61 return parser;
62 } catch (IOException e) {
63 log.error("createSearcher failed", e);
64 throw new InstantiationException();
65 } catch (BookException e) {
66 log.error("createSearcher failed", e);
67 throw new InstantiationException();
68 } catch (ClassCastException e) {
69 log.error("createSearcher failed", e);
70 throw new InstantiationException();
71 } catch (ClassNotFoundException e) {
72 log.error("createSearcher failed", e);
73 throw new InstantiationException();
74 } catch (IllegalAccessException e) {
75 log.error("createSearcher failed", e);
76 throw new InstantiationException();
77 }
78 }
79
80
83 private static final Logger log = LoggerFactory.getLogger(SearcherFactory.class);
84 }
85