org.jibx.binding.util
Class MultipleValueMap

java.lang.Object
  extended by org.jibx.binding.util.MultipleValueMap

public class MultipleValueMap
extends java.lang.Object

Map supporting multiple values for a single key. The multiple value concept doesn't really fit with the standard collections idea of a map, so this provides its own variation of a map interface rather than extend the standard one.

Author:
Dennis M. Sosnoski

Nested Class Summary
 class MultipleValueMap.MultipleIterator
          Iterator for only the multiple-valued keys in the map.
private static class MultipleValueMap.MultipleValueList
          List used for multiple values.
 
Field Summary
private  java.util.HashMap m_backingMap
          Backing map from key to value or array of values.
private  java.lang.Object m_lastKey
          Last lookup key (null if none, or if value changed).
private  java.lang.Object m_lastValue
          Last lookup value (null if none, or if value changed).
private  int m_valueCount
          Actual number of values (not keys) present in map.
 
Constructor Summary
MultipleValueMap()
          Constructor.
 
Method Summary
 void add(java.lang.Object key, java.lang.Object value)
          Add value for key.
 void clear()
          Clear all entries.
 boolean containsKey(java.lang.Object key)
          Check key present in map.
 java.util.ArrayList extract(java.lang.Object key)
          Extract all values for key.
 java.util.ArrayList get(java.lang.Object key)
          Get all values for key.
 java.lang.Object get(java.lang.Object key, int index)
          Get indexed value for key.
 int getCount(java.lang.Object key)
          Get number of values present for key.
private  java.lang.Object getMapped(java.lang.Object key)
          Internal cached lookup.
 boolean isEmpty()
          Check if map is empty.
 java.util.Set keySet()
          Get key set.
 int keySize()
          Get number of keys.
 java.util.Iterator multipleIterator()
          Get iterator over only the multiple-valued keys present in the map.
 int valueSize()
          Get number of values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_backingMap

private final java.util.HashMap m_backingMap
Backing map from key to value or array of values.


m_valueCount

private int m_valueCount
Actual number of values (not keys) present in map.


m_lastKey

private java.lang.Object m_lastKey
Last lookup key (null if none, or if value changed).


m_lastValue

private java.lang.Object m_lastValue
Last lookup value (null if none, or if value changed).

Constructor Detail

MultipleValueMap

public MultipleValueMap()
Constructor.

Method Detail

getMapped

private java.lang.Object getMapped(java.lang.Object key)
Internal cached lookup.

Parameters:
key -
Returns:
value

clear

public void clear()
Clear all entries.


getCount

public int getCount(java.lang.Object key)
Get number of values present for key.

Parameters:
key -
Returns:
value count

get

public java.lang.Object get(java.lang.Object key,
                            int index)
Get indexed value for key.

Parameters:
key -
index -
Returns:
value

add

public void add(java.lang.Object key,
                java.lang.Object value)
Add value for key.

Parameters:
key -
value -

get

public java.util.ArrayList get(java.lang.Object key)
Get all values for key. This returns the value(s) from the map and returns them in the form of a list.

Parameters:
key -
Returns:
list of values

extract

public java.util.ArrayList extract(java.lang.Object key)
Extract all values for key. This removes the value(s) from the map and returns them in the form of a list.

Parameters:
key -
Returns:
prior list of values

keySize

public int keySize()
Get number of keys.

Returns:
key count

valueSize

public int valueSize()
Get number of values.

Returns:
value count

multipleIterator

public java.util.Iterator multipleIterator()
Get iterator over only the multiple-valued keys present in the map.

Returns:
iterator

containsKey

public boolean containsKey(java.lang.Object key)
Check key present in map.

Parameters:
key -
Returns:
key present flag

isEmpty

public boolean isEmpty()
Check if map is empty.

Returns:
empty flag

keySet

public java.util.Set keySet()
Get key set.

Returns:
set of keys


Project Web Site