org.mortbay.util
Class MultiMap

java.lang.Object
  |
  +--java.util.AbstractMap
        |
        +--java.util.HashMap
              |
              +--org.mortbay.util.MultiMap
All Implemented Interfaces:
java.lang.Cloneable, java.util.Map, java.io.Serializable
Direct Known Subclasses:
UrlEncoded

public class MultiMap
extends java.util.HashMap
implements java.lang.Cloneable

A multi valued Map. This Map specializes HashMap and provides methods that operate on multi valued items. Multi valued items are Lists, arrays of Strings and java.util.Vectors. Multi-values items are always stored as a List.

Version:
$Id: MultiMap.java,v 1.3 2001/09/25 02:25:56 gregwilkins Exp $
Author:
Greg Wilkins (gregw)
See Also:
Serialized Form

Inner classes inherited from class java.util.Map
java.util.Map.Entry
 
Constructor Summary
MultiMap()
          Constructor.
MultiMap(int size)
          Constructor.
MultiMap(java.util.Map map)
          Constructor.
MultiMap(MultiMap map)
          Constructor.
 
Method Summary
 void add(java.lang.Object name, java.lang.Object value)
          Add value to multi valued entry.
 void addValues(java.lang.Object name, java.util.List values)
          Add values to multi valued entry.
 void addValues(java.lang.Object name, java.lang.String[] values)
          Add values to multi valued entry.
 void addValues(java.lang.Object name, java.util.Vector values)
          Add values to multi valued entry.
 java.lang.Object clone()
          Clone MultiMap.
 java.lang.String getString(java.lang.Object name)
          Get value as String.
 java.lang.Object getValue(java.lang.Object name, int i)
          Get a value from a multiple value.
 java.util.List getValues(java.lang.Object name)
          Get multiple values.
 java.lang.Object put(java.lang.Object name, java.lang.Object value)
          Put and entry into the map.
 void putAll(java.util.Map m)
          Put all contents of map.
 java.lang.Object putValues(java.lang.Object name, java.util.List values)
          Put multi valued entry.
 java.lang.Object putValues(java.lang.Object name, java.lang.String[] values)
          Put multi valued entry.
 java.lang.Object putValues(java.lang.Object name, java.util.Vector values)
          Put multi valued entry.
 boolean removeValue(java.lang.Object name, java.lang.Object value)
          Remove value.
 
Methods inherited from class java.util.HashMap
clear, containsKey, containsValue, entrySet, get, isEmpty, keySet, remove, size, values
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Constructor Detail

MultiMap

public MultiMap()
Constructor.

MultiMap

public MultiMap(int size)
Constructor.
Parameters:
size - Capacity of the map

MultiMap

public MultiMap(java.util.Map map)
Constructor.
Parameters:
map - Copy contents of this map.

MultiMap

public MultiMap(MultiMap map)
Constructor.
Parameters:
map - Copy contents of this map.
Method Detail

getValues

public java.util.List getValues(java.lang.Object name)
Get multiple values. Single valued entries are converted to singleton lists.
Parameters:
name - The entry key.
Returns:
Unmodifieable List of values.

getValue

public java.lang.Object getValue(java.lang.Object name,
                                 int i)
Get a value from a multiple value. If the value is not a multivalue, then index 0 retrieves the value.
Parameters:
name - The entry key.
i - Index of element to get.
Returns:
Unmodifieable List of values.

getString

public java.lang.String getString(java.lang.Object name)
Get value as String. Single valued items are converted to a String with the toString() Object method. Multi valued entries are converted to a coma separated List. No quoting of commas within values is performed.
Parameters:
name - The entry key.
Returns:
String value.

put

public java.lang.Object put(java.lang.Object name,
                            java.lang.Object value)
Put and entry into the map. All supported multi value values are converted to Lists,
Overrides:
put in class java.util.HashMap
Parameters:
name - The entry key.
value - The entry value.
Returns:
The previous value or null.

putValues

public java.lang.Object putValues(java.lang.Object name,
                                  java.util.List values)
Put multi valued entry.
Parameters:
name - The entry key.
value - The entry multiple values.
Returns:
The previous value or null.

putValues

public java.lang.Object putValues(java.lang.Object name,
                                  java.lang.String[] values)
Put multi valued entry.
Parameters:
name - The entry key.
value - The entry multiple values.
Returns:
The previous value or null.

putValues

public java.lang.Object putValues(java.lang.Object name,
                                  java.util.Vector values)
Put multi valued entry.
Parameters:
name - The entry key.
value - The entry multiple values.
Returns:
The previous value or null.

add

public void add(java.lang.Object name,
                java.lang.Object value)
Add value to multi valued entry. If the entry is single valued, it is converted to the first value of a multi valued entry.
Parameters:
name - The entry key.
value - The entry value.

addValues

public void addValues(java.lang.Object name,
                      java.util.List values)
Add values to multi valued entry. If the entry is single valued, it is converted to the first value of a multi valued entry.
Parameters:
name - The entry key.
value - The entry multiple values.

addValues

public void addValues(java.lang.Object name,
                      java.lang.String[] values)
Add values to multi valued entry. If the entry is single valued, it is converted to the first value of a multi valued entry.
Parameters:
name - The entry key.
value - The entry multiple values.

addValues

public void addValues(java.lang.Object name,
                      java.util.Vector values)
Add values to multi valued entry. If the entry is single valued, it is converted to the first value of a multi valued entry.
Parameters:
name - The entry key.
value - The entry multiple values.

removeValue

public boolean removeValue(java.lang.Object name,
                           java.lang.Object value)
Remove value. Single valued entries are converted to singleton lists.
Parameters:
name - The entry key.
value - The entry value.
Returns:
true if it was removed.

putAll

public void putAll(java.util.Map m)
Put all contents of map.
Overrides:
putAll in class java.util.HashMap
Parameters:
m - Map

clone

public java.lang.Object clone()
Clone MultiMap. Medium depth clone of map and lists, but not values.
Overrides:
clone in class java.util.HashMap
Returns:
cloned MultiMap


Copyright © 2000 Mortbay Consulting Pty. Ltd. All Rights Reserved.