JIDE 3.5.15

com.jidesoft.editor
Class KeywordMap

java.lang.Object
  extended by com.jidesoft.editor.KeywordMap

public class KeywordMap
extends Object

A 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.

Version:
$Id: KeywordMap.java,v 1.16 1999/12/13 03:40:30 sp Exp $
Author:
Slava Pestov, Mike Dillon

Field Summary
protected  int mapLength
           
 
Constructor Summary
KeywordMap(boolean ignoreCase)
          Creates a new KeywordMap.
KeywordMap(boolean ignoreCase, int mapLength)
          Creates a new KeywordMap.
 
Method Summary
 void add(String keyword, byte id)
          Adds a key-value mapping.
 byte get(String keyword)
          Get the keyword's id.
 boolean getIgnoreCase()
          Returns true if the keyword map is set to be case insensitive, false otherwise.
protected  int getSegmentMapKey(Segment s, int off, int len)
           
protected  int getStringMapKey(String s)
           
 Set<String> keyWordSet()
          Returns the set of keyword inside the map.
 byte lookup(Segment text, int offset, int length)
          Looks up a key.
 void setIgnoreCase(boolean ignoreCase)
          Sets if the keyword map should be case insensitive.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mapLength

protected int mapLength
Constructor Detail

KeywordMap

public KeywordMap(boolean ignoreCase)
Creates a new KeywordMap.

Parameters:
ignoreCase - True if keys are case insensitive

KeywordMap

public KeywordMap(boolean ignoreCase,
                  int mapLength)
Creates a new KeywordMap.

Parameters:
ignoreCase - True if the keys are case insensitive
mapLength - The number of `buckets' to create. A value of 52 will give good performance for most maps.
Method Detail

lookup

public byte lookup(Segment text,
                   int offset,
                   int length)
Looks up a key.

Parameters:
text - The text segment
offset - The offset of the substring within the text segment
length - The length of the substring
Returns:
the token id.

add

public void add(String keyword,
                byte id)
Adds a key-value mapping.

Parameters:
keyword - The key
id - The value

get

public byte get(String keyword)
Get the keyword's id.

Parameters:
keyword - the keyword
Returns:
the keyword's id. Token.NULL if not found.

keyWordSet

public Set<String> keyWordSet()
Returns the set of keyword inside the map.

Returns:
the set of keyword inside the map.

getIgnoreCase

public boolean getIgnoreCase()
Returns true if the keyword map is set to be case insensitive, false otherwise.

Returns:
true if the keyword map is set to be case insensitive. Otherwise false.

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(String s)

getSegmentMapKey

protected int getSegmentMapKey(Segment s,
                               int off,
                               int len)

JIDE 3.5.15