public class KeywordMap
extends java.lang.Object
KeywordMap
is similar to a hashtable in that it maps keys
to values. However, the `keys' are Swing segments. This allows lookups of
text substrings without the overhead of creating a new string object.Constructor and Description |
---|
KeywordMap(boolean ignoreCase)
Creates a new
KeywordMap . |
KeywordMap(boolean ignoreCase,
int mapLength)
Creates a new
KeywordMap . |
Modifier and Type | Method and Description |
---|---|
void |
add(char[] keyword,
byte id)
Adds a key-value mapping.
|
void |
add(KeywordMap map)
Adds the content of another keyword map to this one.
|
void |
add(java.lang.String keyword,
byte id)
Adds a key-value mapping.
|
boolean |
getIgnoreCase()
Returns true if the keyword map is set to be case insensitive,
false otherwise.
|
java.lang.String[] |
getKeywords()
Returns an array containing all keywords in this keyword map.
|
java.lang.String |
getNonAlphaNumericChars()
Returns all non-alphanumeric characters that appear in the
keywords of this keyword map.
|
protected int |
getSegmentMapKey(javax.swing.text.Segment s,
int off,
int len) |
byte |
lookup(javax.swing.text.Segment text,
int offset,
int length)
Looks up a key.
|
void |
setIgnoreCase(boolean ignoreCase)
Sets if the keyword map should be case insensitive.
|
public KeywordMap(boolean ignoreCase)
KeywordMap
.ignoreCase
- True if keys are case insensitivepublic KeywordMap(boolean ignoreCase, int mapLength)
KeywordMap
.ignoreCase
- True if the keys are case insensitivemapLength
- The number of `buckets' to create.
A value of 52 will give good performance for most maps.public byte lookup(javax.swing.text.Segment text, int offset, int length)
text
- The text segmentoffset
- The offset of the substring within the text segmentlength
- The length of the substringpublic void add(java.lang.String keyword, byte id)
keyword
- The keyid
- The valuepublic void add(char[] keyword, byte id)
keyword
- The keyid
- The valuepublic java.lang.String getNonAlphaNumericChars()
public java.lang.String[] getKeywords()
public boolean getIgnoreCase()
public void setIgnoreCase(boolean ignoreCase)
ignoreCase
- True if the keyword map should be case
insensitive, false otherwisepublic void add(KeywordMap map)
protected int getSegmentMapKey(javax.swing.text.Segment s, int off, int len)