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.

Version:
$Id: KeywordMap.java,v 1.8 2004/05/29 01:55:26 spestov Exp $
Author:
Slava Pestov, Mike Dillon

Constructor Summary
KeywordMap(boolean ignoreCase)
          Creates a new KeywordMap.
KeywordMap(boolean ignoreCase, int mapLength)
          Creates a new KeywordMap.
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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
id - The value

add

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

Parameters:
keyword - The key
id - The value
Since:
jEdit 4.2pre3

getNonAlphaNumericChars

public java.lang.String getNonAlphaNumericChars()
Returns all non-alphanumeric characters that appear in the keywords of this keyword map.

Since:
jEdit 4.0pre3

getKeywords

public java.lang.String[] getKeywords()
Returns an array containing all keywords in this keyword map.

Since:
jEdit 4.0pre3

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

add

public void add(KeywordMap map)
Adds the content of another keyword map to this one.

Since:
jEdit 4.2pre3

getSegmentMapKey

protected int getSegmentMapKey(javax.swing.text.Segment s,
                               int off,
                               int len)