public final 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.
This class is used by CTokenMarker to map keywords to ids.
| Modifier and Type | Field and Description |
|---|---|
protected int |
mapLength
DOCUMENT ME!
|
| 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(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.
|
protected int |
getSegmentMapKey(javax.swing.text.Segment s,
int off,
int len)
DOCUMENT ME!
|
protected int |
getStringMapKey(java.lang.String s)
DOCUMENT ME!
|
byte |
lookup(javax.swing.text.Segment text,
int offset,
int length)
Looks up a key.
|
int |
sequenceHash(javax.swing.text.Segment text,
int offset,
int length) |
int |
sequenceHash(java.lang.String st) |
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 void setIgnoreCase(boolean ignoreCase)
ignoreCase - True if the keyword map should be case insensitive, false
otherwisepublic boolean getIgnoreCase()
public void add(java.lang.String keyword,
byte id)
keyword - The keyid - The valuepublic int sequenceHash(java.lang.String st)
public int sequenceHash(javax.swing.text.Segment text,
int offset,
int length)
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 substringprotected int getSegmentMapKey(javax.swing.text.Segment s,
int off,
int len)
s - DOCUMENT ME!off - DOCUMENT ME!len - DOCUMENT ME!protected int getStringMapKey(java.lang.String s)
s - DOCUMENT ME!