org.eclipse.jetty.util
Class StringMap

java.lang.Object
  extended by java.util.AbstractMap
      extended by org.eclipse.jetty.util.StringMap
All Implemented Interfaces:
Externalizable, Serializable, Map

public class StringMap
extends AbstractMap
implements Externalizable

Map implementation Optimized for Strings keys.. This String Map has been optimized for mapping small sets of Strings where the most frequently accessed Strings have been put to the map first. It also has the benefit that it can look up entries by substring or sections of char and byte arrays. This can prevent many String objects from being created just to look up in the map. This map is NOT synchronized.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Field Summary
protected static int __HASH_WIDTH
           
protected  HashSet _entrySet
           
protected  boolean _ignoreCase
           
protected  org.eclipse.jetty.util.StringMap.NullEntry _nullEntry
           
protected  Object _nullValue
           
protected  org.eclipse.jetty.util.StringMap.Node _root
           
protected  Set _umEntrySet
           
protected  int _width
           
static boolean CASE_INSENSTIVE
           
 
Constructor Summary
StringMap()
          Constructor.
StringMap(boolean ignoreCase)
          Constructor.
StringMap(boolean ignoreCase, int width)
          Constructor.
 
Method Summary
 void clear()
           
 boolean containsKey(Object key)
           
 Set entrySet()
           
 Object get(Object key)
           
 Object get(String key)
           
 Map.Entry getBestEntry(byte[] key, int offset, int maxLength)
          Get a map entry by byte array key, using as much of the passed key as needed for a match.
 Map.Entry getEntry(char[] key, int offset, int length)
          Get a map entry by char array key.
 Map.Entry getEntry(String key, int offset, int length)
          Get a map entry by substring key.
 int getWidth()
           
 boolean isEmpty()
           
 boolean isIgnoreCase()
           
 Object put(Object key, Object value)
           
 Object put(String key, Object value)
           
 void readExternal(ObjectInput in)
           
 Object remove(Object key)
           
 Object remove(String key)
           
 void setIgnoreCase(boolean ic)
          Set the ignoreCase attribute.
 void setWidth(int width)
          Set the hash width.
 int size()
           
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class java.util.AbstractMap
clone, containsValue, equals, hashCode, keySet, putAll, toString, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

CASE_INSENSTIVE

public static final boolean CASE_INSENSTIVE
See Also:
Constant Field Values

__HASH_WIDTH

protected static final int __HASH_WIDTH
See Also:
Constant Field Values

_width

protected int _width

_root

protected org.eclipse.jetty.util.StringMap.Node _root

_ignoreCase

protected boolean _ignoreCase

_nullEntry

protected org.eclipse.jetty.util.StringMap.NullEntry _nullEntry

_nullValue

protected Object _nullValue

_entrySet

protected HashSet _entrySet

_umEntrySet

protected Set _umEntrySet
Constructor Detail

StringMap

public StringMap()
Constructor.


StringMap

public StringMap(boolean ignoreCase)
Constructor.

Parameters:
ignoreCase -

StringMap

public StringMap(boolean ignoreCase,
                 int width)
Constructor.

Parameters:
ignoreCase -
width - Width of hash tables, larger values are faster but use more memory.
Method Detail

setIgnoreCase

public void setIgnoreCase(boolean ic)
Set the ignoreCase attribute.

Parameters:
ic - If true, the map is case insensitive for keys.

isIgnoreCase

public boolean isIgnoreCase()

setWidth

public void setWidth(int width)
Set the hash width.

Parameters:
width - Width of hash tables, larger values are faster but use more memory.

getWidth

public int getWidth()

put

public Object put(Object key,
                  Object value)
Specified by:
put in interface Map
Overrides:
put in class AbstractMap

put

public Object put(String key,
                  Object value)

get

public Object get(Object key)
Specified by:
get in interface Map
Overrides:
get in class AbstractMap

get

public Object get(String key)

getEntry

public Map.Entry getEntry(String key,
                          int offset,
                          int length)
Get a map entry by substring key.

Parameters:
key - String containing the key
offset - Offset of the key within the String.
length - The length of the key
Returns:
The Map.Entry for the key or null if the key is not in the map.

getEntry

public Map.Entry getEntry(char[] key,
                          int offset,
                          int length)
Get a map entry by char array key.

Parameters:
key - char array containing the key
offset - Offset of the key within the array.
length - The length of the key
Returns:
The Map.Entry for the key or null if the key is not in the map.

getBestEntry

public Map.Entry getBestEntry(byte[] key,
                              int offset,
                              int maxLength)
Get a map entry by byte array key, using as much of the passed key as needed for a match. A simple 8859-1 byte to char mapping is assumed.

Parameters:
key - char array containing the key
offset - Offset of the key within the array.
maxLength - The length of the key
Returns:
The Map.Entry for the key or null if the key is not in the map.

remove

public Object remove(Object key)
Specified by:
remove in interface Map
Overrides:
remove in class AbstractMap

remove

public Object remove(String key)

entrySet

public Set entrySet()
Specified by:
entrySet in interface Map
Specified by:
entrySet in class AbstractMap

size

public int size()
Specified by:
size in interface Map
Overrides:
size in class AbstractMap

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Map
Overrides:
isEmpty in class AbstractMap

containsKey

public boolean containsKey(Object key)
Specified by:
containsKey in interface Map
Overrides:
containsKey in class AbstractMap

clear

public void clear()
Specified by:
clear in interface Map
Overrides:
clear in class AbstractMap

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Throws:
IOException

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Throws:
IOException
ClassNotFoundException


Copyright © 1995-2009 Mort Bay Consulting. All Rights Reserved.