com.swabunga.spell.event

Class AbstractWordFinder

public abstract class AbstractWordFinder extends Object implements WordFinder

Defines common methods and behaviour for the various word finding subclasses.

Author: Anthony Roy (ajr@antroy.co.uk)

Field Summary
protected WordcurrentWord
The word being analyzed
protected WordnextWord
The word following the current one
protected BreakIteratorsentenceIterator
An iterator to work through the sentence
protected booleanstartsSentence
Indicate if the current word starts a new sentence
protected Stringtext
Holds the text to analyze
Constructor Summary
AbstractWordFinder(String inText)
Creates a new AbstractWordFinder object.
AbstractWordFinder()
Creates a new default AbstractWordFinder object.
Method Summary
Wordcurrent()
Returns the current word in the iteration .
StringgetText()
Return the text being searched.
booleanhasNext()
Indicates if there is some more word to analyze
protected intignore(int index, char startIgnore)
Ignores or skip over text starting from the index position specified if it contains the startIgnore, and until the first non letter or digit character is encountered or end of text is detected.
protected intignore(int index, char startIgnore, char endIgnore)
Ignores or skip over text starting from the index position specified if it contains the startIgnore, and until the endIgnore character is encountered or end of text is detected.
protected intignore(int index, Character startIgnore, Character endIgnore)
Ignores or skip over text starting from the index position specified if it contains the startIgnore, and until the endIgnore character is encountered or end of text is detected.
protected intignore(int index, String startIgnore, String endIgnore)
Ignores or skip over text starting from the index position specified if it contains the startIgnore string, and until the endIgnore string is encountered or end of text is detected.
protected voidinit()
Initializes the sentenseIterator
protected booleanisWordChar(int posn)
Indicates if the character at the specified position is acceptable as part of a word.
protected booleanisWordChar(char c)
Indicates if the character at the specified character is acceptable as part of a word.
abstract Wordnext()
This method scans the text from the end of the last word, and returns a new Word object corresponding to the next word.
voidreplace(String newWord)
Replace the current word in the search with a replacement string.
protected voidsetSentenceIterator(Word wd)
Adjusts the sentence iterator and the startSentence flag according to the currentWord.
voidsetText(String newText)
Defines the text to search.
booleanstartsSentence()
StringtoString()
Return the text being searched.

Field Detail

currentWord

protected Word currentWord
The word being analyzed

nextWord

protected Word nextWord
The word following the current one

sentenceIterator

protected BreakIterator sentenceIterator
An iterator to work through the sentence

startsSentence

protected boolean startsSentence
Indicate if the current word starts a new sentence

text

protected String text
Holds the text to analyze

Constructor Detail

AbstractWordFinder

public AbstractWordFinder(String inText)
Creates a new AbstractWordFinder object.

Parameters: inText the String to iterate through.

AbstractWordFinder

public AbstractWordFinder()
Creates a new default AbstractWordFinder object.

Method Detail

current

public Word current()
Returns the current word in the iteration .

Returns: the current word.

Throws: WordNotFoundException current word has not yet been set.

getText

public String getText()
Return the text being searched. May have changed since first set through calls to replace.

Returns: the text being searched.

hasNext

public boolean hasNext()
Indicates if there is some more word to analyze

Returns: true if there are further words in the string.

ignore

protected int ignore(int index, char startIgnore)
Ignores or skip over text starting from the index position specified if it contains the startIgnore, and until the first non letter or digit character is encountered or end of text is detected.

Parameters: index The start position in text. startIgnore The character that should be at index position to start skipping through.

Returns: The index position pointing after the skipped characters or the original index if the ignore condition could not be met.

ignore

protected int ignore(int index, char startIgnore, char endIgnore)
Ignores or skip over text starting from the index position specified if it contains the startIgnore, and until the endIgnore character is encountered or end of text is detected.

Parameters: index The start position in text. startIgnore The character that should be at index position to start skipping through. endIgnore The character which mark the end of skipping through. If the value of endIgnore is null, skipping characters stop at first non letter or digit character.

Returns: The index position pointing after the skipped characters or the original index if the ignore condition could not be met.

ignore

protected int ignore(int index, Character startIgnore, Character endIgnore)
Ignores or skip over text starting from the index position specified if it contains the startIgnore, and until the endIgnore character is encountered or end of text is detected.

Parameters: index The start position in text. startIgnore The character that should be at index position to start skipping through. endIgnore The character which mark the end of skipping through. If the value of endIgnore is null, skipping characters stop at first non letter or digit character.

Returns: The index position pointing after the skipped characters or the original index if the ignore condition could not be met.

ignore

protected int ignore(int index, String startIgnore, String endIgnore)
Ignores or skip over text starting from the index position specified if it contains the startIgnore string, and until the endIgnore string is encountered or end of text is detected.

Parameters: index The start position in text. startIgnore The string that should be at index position to start skipping through. endIgnore The string which mark the end of skipping through.

Returns: The index position pointing after the skipped characters or the original index if the ignore condition could not be met.

init

protected void init()
Initializes the sentenseIterator

isWordChar

protected boolean isWordChar(int posn)
Indicates if the character at the specified position is acceptable as part of a word. To be acceptable, the character need to be a letter or a digit. It is also acceptable if the character is one of ''', '@', '.' or '_' and is preceded and followed by letter or digit.

Parameters: posn The character position to analyze.

Returns: true if the character is a letter or digit

isWordChar

protected boolean isWordChar(char c)
Indicates if the character at the specified character is acceptable as part of a word. To be acceptable, the character need to be a letter or a digit or a ' (an apostrophe).

Parameters: c The character to evaluates if it can be part of a word

Returns: true if the character is a letter, digit or a ' (an apostrophe).

next

public abstract Word next()
This method scans the text from the end of the last word, and returns a new Word object corresponding to the next word.

Returns: the following word.

replace

public void replace(String newWord)
Replace the current word in the search with a replacement string.

Parameters: newWord the replacement string.

Throws: WordNotFoundException current word has not yet been set.

setSentenceIterator

protected void setSentenceIterator(Word wd)
Adjusts the sentence iterator and the startSentence flag according to the currentWord.

Parameters: wd the wd parameter is not presently used.

setText

public void setText(String newText)
Defines the text to search.

Parameters: newText The text to be analyzed

startsSentence

public boolean startsSentence()

Returns: true if the current word starts a new sentence.

Throws: WordNotFoundException current word has not yet been set.

toString

public String toString()
Return the text being searched. May have changed since first set through calls to replace.

Returns: the text being searched.