org.gjt.sp.jedit.syntax
Class KeywordMap

java.lang.Object
  extended byorg.gjt.sp.jedit.syntax.KeywordMap

public class KeywordMap
extends java.lang.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.1.1.1 2001/08/20 22:32:06 gfx 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(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.
 
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(javax.swing.text.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

add

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

Parameters:
keyword - The key

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)


Copyright © 2002 Romain Guy.