SubBook { public Searcher searchKeyword(final String[] word) throws EBException { if (!hasKeywordSearch()) { return new NullSearcher(); } int len = word.length; byte[][] b = new byte[len][]; for (int i=0; i<len; i++) { b[i] = _unescapeExtFontCode(word[i]); } MultiWordSearcher searcher = new MultiWordSearcher(this, _keywordStyle, SingleWordSearcher.KEYWORD); searcher.search(b); return searcher; } SubBook(final Book book, final String title, final int index); Book getBook(); SubAppendix getSubAppendix(); String getTitle(); String getName(); ExtFont getFont(); ExtFont getFont(final int type); void setFont(final int type); GraphicData getGraphicData(); SoundData getSoundData(); EBFile getTextFile(); EBFile getGraphicFile(); EBFile getSoundFile(); File[] getMovieFileList(); File getMovieFile(final String name); T getHeading(final long pos, final Hook<T> hook); long getNextHeadingPosition(final long pos); T getText(final long pos, final Hook<T> hook); T getMenu(final Hook<T> hook); T getImageMenu(final Hook<T> hook); T getCopyright(final Hook<T> hook); Searcher searchExactword(final String word); Searcher searchWord(final String word); Searcher searchEndword(final String word); Searcher searchKeyword(final String[] word); Searcher searchCross(final String[] word); Searcher searchMulti(final int multiIndex, final String[] word); boolean hasMenu(); boolean hasImageMenu(); boolean hasCopyright(); boolean hasExactwordSearch(); boolean hasWordSearch(); boolean hasEndwordSearch(); boolean hasKeywordSearch(); boolean hasCrossSearch(); boolean hasMultiSearch(); int getMultiCount(); String getMultiTitle(final int multiIndex); int getMultiEntryCount(final int multiIndex); String getMultiEntryLabel(final int multiIndex, final int entryIndex); T getCandidate(final int multiIndex, final int entryIndex,
                              final Hook<T> hook); boolean hasMultiEntryCandidate(final int multiIndex, final int entryIndex); String toString();  }
@Test public void testSearchKeyword() throws Exception { }