Class MultipleValueMap

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

public class MultipleValueMap extends 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
  • Field Details

    • m_backingMap

      private final 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 Object m_lastKey
      Last lookup key (null if none, or if value changed).
    • m_lastValue

      private Object m_lastValue
      Last lookup value (null if none, or if value changed).
  • Constructor Details

    • MultipleValueMap

      public MultipleValueMap()
      Constructor.
  • Method Details

    • getMapped

      private Object getMapped(Object key)
      Internal cached lookup.
      Parameters:
      key -
      Returns:
      value
    • clear

      public void clear()
      Clear all entries.
    • getCount

      public int getCount(Object key)
      Get number of values present for key.
      Parameters:
      key -
      Returns:
      value count
    • get

      public Object get(Object key, int index)
      Get indexed value for key.
      Parameters:
      key -
      index -
      Returns:
      value
    • add

      public void add(Object key, Object value)
      Add value for key.
      Parameters:
      key -
      value -
    • get

      public ArrayList get(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 ArrayList extract(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 Iterator multipleIterator()
      Get iterator over only the multiple-valued keys present in the map.
      Returns:
      iterator
    • containsKey

      public boolean containsKey(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 Set keySet()
      Get key set.
      Returns:
      set of keys