Class KeywordMap
- java.lang.Object
-
- com.inductiveautomation.ignition.client.jedittextarea.KeywordMap
-
public class KeywordMap extends java.lang.Object
AKeywordMap
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.
-
-
Field Summary
Fields Modifier and Type Field Description protected int
mapLength
-
Constructor Summary
Constructors Constructor Description KeywordMap(boolean ignoreCase)
Creates a newKeywordMap
.KeywordMap(boolean ignoreCase, int mapLength)
Creates a newKeywordMap
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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)
protected int
getStringMapKey(java.lang.String s)
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.
-
-
-
Constructor Detail
-
KeywordMap
public KeywordMap(boolean ignoreCase)
Creates a newKeywordMap
.- Parameters:
ignoreCase
- True if keys are case insensitive
-
KeywordMap
public KeywordMap(boolean ignoreCase, int mapLength)
Creates a newKeywordMap
.- Parameters:
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.
-
-
Method Detail
-
lookup
public byte lookup(javax.swing.text.Segment text, int offset, int length)
Looks up a key.- Parameters:
text
- The text segmentoffset
- The offset of the substring within the text segmentlength
- The length of the substring
-
add
public void add(java.lang.String keyword, byte id)
Adds a key-value mapping.- Parameters:
keyword
- The keyid
- The value
-
getIgnoreCase
public boolean getIgnoreCase()
Returns true if the keyword map is set to be case insensitive, false otherwise.
-
setIgnoreCase
public void setIgnoreCase(boolean ignoreCase)
Sets if the keyword map should be case insensitive.- Parameters:
ignoreCase
- True if the keyword map should be case insensitive, false otherwise
-
getStringMapKey
protected int getStringMapKey(java.lang.String s)
-
getSegmentMapKey
protected int getSegmentMapKey(javax.swing.text.Segment s, int off, int len)
-
-