|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjoptsimple.internal.AbbreviationMap<V>
V - a constraint on the types of the values in the mappublic class AbbreviationMap<V>
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
using 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" using 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".
| Field Summary | |
|---|---|
private java.util.Map<java.lang.Character,AbbreviationMap<V>> |
children
|
private java.lang.String |
key
|
private int |
keysBeyond
|
private V |
value
|
| Constructor Summary | |
|---|---|
AbbreviationMap()
|
|
| Method Summary | |
|---|---|
private boolean |
add(char[] chars,
V newValue,
int offset,
int length)
|
private void |
addToMappings(java.util.Map<java.lang.String,V> mappings)
|
private static char[] |
charsOf(java.lang.String aKey)
|
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. |
V |
get(java.lang.String aKey)
Answers the value associated with the given key. |
void |
put(java.lang.String aKey,
V newValue)
Associates a given value with a given key. |
void |
putAll(java.util.Collection<java.lang.String> keys,
V newValue)
Associates a given value with a given set of keys. |
private boolean |
remove(char[] aKey,
int offset,
int length)
|
void |
remove(java.lang.String aKey)
If the map contains the given key, dissociates the key from its value. |
private boolean |
removeAtEndOfKey()
|
private void |
setValueToThatOfOnlyChild()
|
java.util.Map<java.lang.String,V> |
toJavaUtilMap()
Gives a Java map representation of this abbreviation map. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private java.lang.String key
private V value
private final java.util.Map<java.lang.Character,AbbreviationMap<V>> children
private int keysBeyond
| Constructor Detail |
|---|
public AbbreviationMap()
| Method Detail |
|---|
public 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.
aKey - key to look up
true if key is present in the map
java.lang.NullPointerException - if key is nullpublic V 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.
aKey - key to look up
aKey; or null if there is no
such value or aKey is not a unique abbreviation of a key in the map
java.lang.NullPointerException - if aKey is null
public void put(java.lang.String aKey,
V newValue)
Associates a given value with a given key. If there was a previous association, the old value is replaced with the new one.
aKey - key to create in the mapnewValue - value to associate with the key
java.lang.NullPointerException - if aKey or newValue is null
java.lang.IllegalArgumentException - if aKey is a zero-length string
public void putAll(java.util.Collection<java.lang.String> keys,
V newValue)
Associates a given value with a given set of keys. If there was a previous association, the old value is replaced with the new one.
keys - keys to create in the mapnewValue - value to associate with the key
java.lang.NullPointerException - if keys or newValue is null
java.lang.IllegalArgumentException - if any of keys is a zero-length string
private boolean add(char[] chars,
V newValue,
int offset,
int length)
public void remove(java.lang.String aKey)
If the map contains the given key, dissociates the key from its value.
aKey - key to remove
java.lang.NullPointerException - if aKey is null
java.lang.IllegalArgumentException - if aKey is a zero-length string
private boolean remove(char[] aKey,
int offset,
int length)
private void setValueToThatOfOnlyChild()
private boolean removeAtEndOfKey()
public java.util.Map<java.lang.String,V> toJavaUtilMap()
private void addToMappings(java.util.Map<java.lang.String,V> mappings)
private static char[] charsOf(java.lang.String aKey)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||