KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > susebox > jtopas > spi > KeywordHandler


1 /*
2  * KeywordHandler.java: Interface for keyword-aware tokenizers.
3  *
4  * Copyright (C) 2002 Heiko Blau
5  *
6  * This file belongs to the JTopas Library.
7  * JTopas is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as published by the
9  * Free Software Foundation; either version 2.1 of the License, or (at your
10  * option) any later version.
11  *
12  * This software is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE.
15  * See the GNU Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License along
18  * with JTopas. If not, write to the
19  *
20  * Free Software Foundation, Inc.
21  * 59 Temple Place, Suite 330,
22  * Boston, MA 02111-1307
23  * USA
24  *
25  * or check the Internet: http://www.fsf.org
26  *
27  * Contact:
28  * email: heiko@susebox.de
29  */

30
31 package de.susebox.jtopas.spi;
32
33 //-----------------------------------------------------------------------------
34
// Imports
35
//
36
import de.susebox.jtopas.TokenizerProperty;
37 import de.susebox.jtopas.TokenizerException;
38
39
40 //-----------------------------------------------------------------------------
41
// Interface KeywordHandler
42
//
43

44 /**<p>
45  * This interface must be implemented by classes that should be used as a
46  * keyword handler for a {@link de.susebox.jtopas.Tokenizer}.
47  *</p>
48  *
49  * @see de.susebox.jtopas.Tokenizer
50  * @see de.susebox.jtopas.TokenizerProperties
51  * @see de.susebox.jtopas.spi.DataMapper
52  * @author Heiko Blau
53  */

54 public interface KeywordHandler {
55   
56   /**
57    * This method can be used by a {@link de.susebox.jtopas.Tokenizer} implementation
58    * for a fast detection if keyword matching must be performed at all. If the method
59    * returns <code>false</code> time-consuming preparations can be skipped.
60    *
61    * @return <code>true</code> if there actually are pattern that can be tested
62    * for a match, <code>false</code> otherwise.
63    */

64   public boolean hasKeywords();
65   
66   /**
67    * This method checks if the character range given through the
68    * {@link DataProvider} comprises a keyword. An implementation should use
69    * a {@link de.susebox.jtopas.TokenizerException} to report problems.
70    *
71    * @param dataProvider the source to get the data from, that are checked
72    * @return a {@link de.susebox.jtopas.TokenizerProperty} if a keyword could be
73    * found, <code>null</code> otherwise
74    * @throws TokenizerException generic exception
75    * @throws NullPointerException if no {@link DataProvider} is given
76    */

77   public TokenizerProperty isKeyword(DataProvider dataProvider)
78     throws TokenizerException, NullPointerException JavaDoc;
79 }
80
Popular Tags