joptsimple
Class AbbreviationMap

java.lang.Object
  extended by joptsimple.AbbreviationMap

 class AbbreviationMap
extends java.lang.Object

A map whose keys are strings; when a key/value pair is added to the map, the longest unique abbreviations of that key are added as well, and associated with the value. Thus:

   
   abbreviations.put( "good", "bye" );
   
 

would make it such that you could retrieve the value "bye" from the map with the keys "good", "goo", "go", and "g". A subsequent invocation of:

   
   abbreviations.put( "go", "fish" );
   
 

would make it such that you could retrieve the value "bye" using the keys "good" and "goo", and the value "fish" with the key "go". The key "g" would yield null, since it would no longer be a unique abbreviation.

The data structure is much like a "trie".

Since:
1.0
Version:
$Id: AbbreviationMap.java,v 1.3 2008/04/10 19:41:55 pholser Exp $
Author:
Paul Holser
See Also:
Perl's Text::Abbrev module

Field Summary
private  java.util.Map children
           
private  java.lang.String key
           
private  int keysBeyond
           
private  java.lang.Object value
           
 
Constructor Summary
AbbreviationMap()
           
 
Method Summary
private  boolean add(char[] chars, java.lang.Object newValue, int offset, int length)
           
private  void addToMappings(java.util.Map mappings)
           
private static char[] charsOf(java.lang.String aKey)
           
(package private)  boolean contains(java.lang.String aKey)
          Tells whether the given key is in the map, or whether the given key is a unique abbreviation of a key that is in the map.
(package private)  java.lang.Object get(java.lang.String aKey)
          Answers the value associated with the given key.
(package private)  void put(java.lang.String aKey, java.lang.Object newValue)
          Associates a given value with a given key.
(package private)  void putAll(java.util.List keys, java.lang.Object newValue)
           
private  boolean remove(char[] aKey, int offset, int length)
           
(package private)  void remove(java.lang.String aKey)
          If the map contains the given key, dissociates the key from its value.
private  boolean removeAtEndOfKey()
           
(package private)  java.util.Map toJavaUtilMap()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

key

private java.lang.String key

value

private java.lang.Object value

children

private final java.util.Map children

keysBeyond

private int keysBeyond
Constructor Detail

AbbreviationMap

AbbreviationMap()
Method Detail

contains

boolean contains(java.lang.String aKey)

Tells whether the given key is in the map, or whether the given key is a unique abbreviation of a key that is in the map.

Parameters:
aKey - key to look up
Returns:
true if key is present in the map
Throws:
java.lang.NullPointerException - if key is null

get

java.lang.Object get(java.lang.String aKey)

Answers the value associated with the given key. The key can be a unique abbreviation of a key that is in the map.

Parameters:
aKey - key to look up
Returns:
the value associated with aKey; or null if there is no such value or aKey is not a unique abbreviation of a key in the map
Throws:
java.lang.NullPointerException - if aKey is null

put

void put(java.lang.String aKey,
         java.lang.Object newValue)

Associates a given value with a given key. If there was a previous association, the old value is replaced with the new one.

Parameters:
aKey - key to create in the map
newValue - value to associate with the key
Throws:
java.lang.NullPointerException - if aKey or newValue is null
java.lang.IllegalArgumentException - if aKey is a zero-length string

putAll

void putAll(java.util.List keys,
            java.lang.Object newValue)

add

private boolean add(char[] chars,
                    java.lang.Object newValue,
                    int offset,
                    int length)

remove

void remove(java.lang.String aKey)

If the map contains the given key, dissociates the key from its value.

Parameters:
aKey - key to remove
Throws:
java.lang.NullPointerException - if aKey is null
java.lang.IllegalArgumentException - if aKey is a zero-length string

remove

private boolean remove(char[] aKey,
                       int offset,
                       int length)

removeAtEndOfKey

private boolean removeAtEndOfKey()

toJavaUtilMap

java.util.Map toJavaUtilMap()

addToMappings

private void addToMappings(java.util.Map mappings)

charsOf

private static char[] charsOf(java.lang.String aKey)