OSDN Git Service

7b071c9e9607dfef89390d89c58f5ee1bc047590
[neighbornote/NeighborNote.git] / src / com / swabunga / spell / event / BasicSpellCheckEvent.java
1 /*\r
2 Jazzy - a Java library for Spell Checking\r
3 Copyright (C) 2001 Mindaugas Idzelis\r
4 Full text of license can be found in LICENSE.txt\r
5 \r
6 This library is free software; you can redistribute it and/or\r
7 modify it under the terms of the GNU Lesser General Public\r
8 License as published by the Free Software Foundation; either\r
9 version 2.1 of the License, or (at your option) any later version.\r
10 \r
11 This library is distributed in the hope that it will be useful,\r
12 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
14 Lesser General Public License for more details.\r
15 \r
16 You should have received a copy of the GNU Lesser General Public\r
17 License along with this library; if not, write to the Free Software\r
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\r
19 */\r
20 package com.swabunga.spell.event;\r
21 \r
22 import java.util.List;\r
23 \r
24 /** This event is fired off by the SpellChecker and is passed to the\r
25  *  registered SpellCheckListeners\r
26  *\r
27  * @author Jason Height (jheight@chariot.net.au)\r
28  */\r
29 class BasicSpellCheckEvent implements SpellCheckEvent {\r
30 \r
31   /**The list holding the suggested Word objects for the misspelt word*/\r
32   @SuppressWarnings("unchecked")\r
33 private final List suggestions;\r
34   /**The misspelt word*/\r
35   private final String invalidWord;\r
36   /**The action to be done when the event returns*/\r
37   private short action = INITIAL;\r
38   /**Contains the word to be replaced if the action is REPLACE or REPLACEALL*/\r
39   private String replaceWord = null;\r
40 \r
41   @SuppressWarnings("unused")\r
42 private final String context;\r
43   private final int startPosition;\r
44 \r
45 \r
46   /**Constructs the SpellCheckEvent\r
47    * @param invalidWord The word that is misspelt\r
48    * @param suggestions A list of Word objects that are suggested to replace the currently misspelt word\r
49    * @param tokenizer The reference to the tokenizer that caused this\r
50    * event to fire.\r
51    */\r
52   @SuppressWarnings("unchecked")\r
53 public BasicSpellCheckEvent(String invalidWord, List suggestions, WordTokenizer tokenizer) {\r
54     this.invalidWord = invalidWord;\r
55     this.suggestions = suggestions;\r
56     this.context = tokenizer.getContext();\r
57     this.startPosition = tokenizer.getCurrentWordPosition();\r
58   }\r
59 \r
60   /** Returns the list of suggested Word objects\r
61    * @return A list of words phonetically close to the misspelt word\r
62    */\r
63   @SuppressWarnings("unchecked")\r
64 public List getSuggestions() {\r
65     return suggestions;\r
66   }\r
67 \r
68   /** Returns the currently misspelt word\r
69    * @return The text misspelt\r
70    */\r
71   public String getInvalidWord() {\r
72     return invalidWord;\r
73   }\r
74 \r
75   /** Returns the context in which the misspelt word is used\r
76    * @return The text containing the context\r
77    */\r
78   public String getWordContext() {\r
79     //JMH TBD\r
80     return null;\r
81   }\r
82 \r
83   /** Returns the start position of the misspelt word in the context\r
84    * @return The position of the word\r
85    */\r
86   public int getWordContextPosition() {\r
87     return startPosition;\r
88   }\r
89 \r
90   /** Returns the action type the user has to handle\r
91    * @return The type of action the event is carrying\r
92    */\r
93   public short getAction() {\r
94     return action;\r
95   }\r
96 \r
97   /** Returns the text to replace\r
98    * @return the text of the word to replace\r
99    */\r
100   public String getReplaceWord() {\r
101     return replaceWord;\r
102   }\r
103 \r
104   /** Set the action to replace the currently misspelt word with the new word\r
105    *  @param newWord The word to replace the currently misspelt word\r
106    *  @param replaceAll If set to true, the SpellChecker will replace all\r
107    *  further occurrences of the misspelt word without firing a SpellCheckEvent.\r
108    */\r
109   public void replaceWord(String newWord, boolean replaceAll) {\r
110     if (action != INITIAL)\r
111       throw new IllegalStateException("The action can can only be set once");\r
112     if (replaceAll)\r
113       action = REPLACEALL;\r
114     else\r
115       action = REPLACE;\r
116     replaceWord = newWord;\r
117   }\r
118 \r
119   /**\r
120    * Set the action it ignore the currently misspelt word.\r
121    * @param ignoreAll If set to true, the SpellChecker will replace all\r
122    *  further occurrences of the misspelt word without firing a SpellCheckEvent.\r
123    */\r
124   public void ignoreWord(boolean ignoreAll) {\r
125     if (action != INITIAL)\r
126       throw new IllegalStateException("The action can can only be set once");\r
127     if (ignoreAll)\r
128       action = IGNOREALL;\r
129     else\r
130       action = IGNORE;\r
131   }\r
132 \r
133   /** Set the action to add a new word into the dictionary. This will also replace the\r
134    *  currently misspelt word.\r
135    * @param newWord The new word to add to the dictionary.\r
136    */\r
137   public void addToDictionary(String newWord) {\r
138     if (action != INITIAL)\r
139       throw new IllegalStateException("The action can can only be set once");\r
140     action = ADDTODICT;\r
141     replaceWord = newWord;\r
142   }\r
143 \r
144   /** Set the action to terminate processing of the spellchecker.\r
145    */\r
146   public void cancel() {\r
147     if (action != INITIAL)\r
148       throw new IllegalStateException("The action can can only be set once");\r
149     action = CANCEL;\r
150   }\r
151 }