Class JDFAttributeMapArray

All Implemented Interfaces:
Serializable, Cloneable, Iterable<JDFAttributeMap>, Collection<JDFAttributeMap>, List<JDFAttributeMap>, RandomAccess

public class JDFAttributeMapArray extends ArrayList<JDFAttributeMap>
Description: This class represents a vector of JDFAttributeMaps
See Also:
  • Constructor Details

    • JDFAttributeMapArray

      public JDFAttributeMapArray()
      constructor
    • JDFAttributeMapArray

      public JDFAttributeMapArray(Collection<JDFAttributeMap> toAdd)
      copy constructor, the map elements are cloned
      Parameters:
      toAdd - Vector of elements to clone
    • JDFAttributeMapArray

      public JDFAttributeMapArray(JDFAttributeMap[] toAdd)
      constructor from array, the map elements are not cloned
      Parameters:
      toAdd - the array
    • JDFAttributeMapArray

      public JDFAttributeMapArray(JDFAttributeMap moreMap)
      Parameters:
      moreMap - the single attribute map to add
  • Method Details

    • toString

      public String toString()
      toString
      Overrides:
      toString in class AbstractCollection<JDFAttributeMap>
      Returns:
      String
    • getNonEmpty

      public static JDFAttributeMapArray getNonEmpty(JDFAttributeMapArray v)
      Parameters:
      v -
      Returns:
    • getArray

      public static JDFAttributeMapArray getArray(JDFAttributeMap partMap)
      Parameters:
      partMap -
      Returns:
    • isEmpty

      public static boolean isEmpty(Collection<JDFAttributeMap> v)
      are we null or empty or contain only an empty JDFAttributeMap
      Parameters:
      v -
      Returns:
    • showKeys

      public String showKeys(String sepMap, String sepEntry)
      Parameters:
      sepMap - the separator between maps
      sepEntry - the separator between map entries
      Returns:
      the string representation
    • getPartValues

      public List<String> getPartValues(String strKey, boolean bUnique)
      Parameters:
      strKey - the attribute to get values from
      bUnique - if true, ensure unique vector, else the vector corresponds to the vector of values
      Returns:
      the Vector of all values
    • getAndMaps

      public JDFAttributeMapArray getAndMaps(JDFAttributeMap map)
      andMap - builds a new vector of maps with identical pairs of both maps does not modify this
      Parameters:
      map - the given map
      Returns:
      the anded map, null if mismatches occurred
    • getOrMaps

      public JDFAttributeMapArray getOrMaps(JDFAttributeMap map)
      andMap - builds a new vector of maps with identical pairs of both maps does not modify this
      Parameters:
      map - the given map
      Returns:
      the anded map, null if mismatches occurred
    • getOrMaps

      andMap - builds a new vector of maps with identical pairs of both maps does not modify this
      Parameters:
      map - the given map
      Returns:
      the anded map, null if mismatches occurred
    • containsKey

      public boolean containsKey(String key)
      Parameters:
      key - the key to check for
      Returns:
      true if any of the maps contains key
      See Also:
    • maxSize

      public int maxSize()
      Return the maximum size size of a JDFAttributeMap in this
      Returns:
      int - the size
    • minSize

      public int minSize()
      Return the minimum size size of a JDFAttributeMap in this
      Returns:
      int - the size
    • get

      public JDFAttributeMap get(int i)
      Returns the element at the given position (may be<0 to count backwards)
      Specified by:
      get in interface List<JDFAttributeMap>
      Overrides:
      get in class ArrayList<JDFAttributeMap>
      Parameters:
      i - the given position
      Returns:
      JDFAttributeMap - the selected element
    • removeKeys

      public JDFAttributeMapArray removeKeys(Collection<String> set)
      remove the keys specified in set and then erase any duplicates and emptys
      Parameters:
      set -
    • removeKey

      public JDFAttributeMapArray removeKey(String key)
      remove the key specified and then erase any duplicates and emptys
      Parameters:
      key -
    • reduceMap

      public void reduceMap(Collection<String> keySet)
      reduce each JDFAttributeMap in this by keySet (only entries in keyset are retained)
      Parameters:
      keySet -
    • getKeys

      public StringArray getKeys()
      return list of all keys
      Returns:
      the vector of all keys
    • getCommonMap

      public JDFAttributeMap getCommonMap()
      return the map that is common to all elements of this. All keys exist and have the same value
      Returns:
      the vector of all keys
    • unify

      public void unify()
      unify - make VElement unique, retaining initial order
    • appendUnique

      public void appendUnique(JDFAttributeMap map)
      Parameters:
      map - map to append
    • appendUnique

      public void appendUnique(JDFAttributeMapArray maps)
      Method appendUnique.
      Parameters:
      maps - maps to append
    • overlapMap

      public JDFAttributeMapArray overlapMap(JDFAttributeMap map)
      Method overlapMap. removes all non-overlapping maps from this
      Parameters:
      map - the map to check against
      Returns:
    • getOverlapMaps

      public JDFAttributeMapArray getOverlapMaps(JDFAttributeMap map)
      Method overlapMap. get a copy of this with all overlapping maps the maps are NOT cloned
      Parameters:
      map - the map to check against
      Returns:
      a new VJDFAttributemap with the overlapping entries of this - never null
    • getMatchingMaps

      public JDFAttributeMapArray getMatchingMaps(String key, String regExp, boolean ignoreCase)
      Method overlapMap. get a copy of this with all matching maps the maps are NOT cloned
      Parameters:
      key - the key to match
      regExp - the simplified regexp
      ignoreCase - duh...
      Returns:
      a new VJDFAttributemap with the matching entries of this - never null (may be safely daisy-chained)
    • overlapMap

      public JDFAttributeMapArray overlapMap(JDFAttributeMapArray vMap)
      Method overlapMap. only entries that contain at least one matching map entry are retained
      Parameters:
      vMap - the map to check against
    • overlapsMap

      public boolean overlapsMap(JDFAttributeMap map)
      Method overlapMap.
      Parameters:
      map - the map to check against
      Returns:
    • subMap

      public boolean subMap(JDFAttributeMap map)
      Method subMap.
      Parameters:
      map - the submap to check against
      Returns:
      true if this has at least one entry that subMap is a submap of
    • subMap

      public boolean subMap(Collection<JDFAttributeMap> vMap)
      Method subMap.
      Parameters:
      vMap - the vector submaps to check against
      Returns:
      true if this has at least one entry that vMap contains at least a submap of
    • overlapsMap

      public boolean overlapsMap(Collection<JDFAttributeMap> vMap)
      Method overlapsMap. returns true if at least one element exists that has no non-matching key value pairs
      Parameters:
      vMap - the vector to check against
      Returns:
      true if this has at least one entry that vMap contains at least a submap of
    • equals

      public boolean equals(Object other)
      equals - Compares two map vectors, returns true if content equal regardless of element order, otherwise false.
      If input is not of type VJDFAttributeMap, result of superclasses equals method is returned.
      Specified by:
      equals in interface Collection<JDFAttributeMap>
      Specified by:
      equals in interface List<JDFAttributeMap>
      Overrides:
      equals in class ArrayList<JDFAttributeMap>
      Parameters:
      other - in this case VJDFAttributeMap to compare
      Returns:
      boolean - true if the maps are equal, otherwise false
    • extendMap

      public void extendMap(String strKey, Collection<String> vsValues)
      replace all maps in this with n maps that have the values strKey, vsValues
      Parameters:
      strKey - the new key to add
      vsValues - String of values
    • put

      public void put(Object key, Object value)
      put the key value pair into all entries
      Parameters:
      key - the key to set - may be either String or Enum
      value - the value to set - may be either String or Enum
      Throws:
      IllegalArgumentException - if key or value have the wrong type
    • hashCode

      public int hashCode()
      hashCode complements equals() to fulfill the equals/hashCode contract
      Specified by:
      hashCode in interface Collection<JDFAttributeMap>
      Specified by:
      hashCode in interface List<JDFAttributeMap>
      Overrides:
      hashCode in class ArrayList<JDFAttributeMap>
      Returns:
      int
    • put

      public void put(String key, String value)
      put the key value pair into all entries; if no entries are there, create exactly one entry with the given key value pair
      Parameters:
      key - the key to set
      value - the value to set
    • clone

      public JDFAttributeMapArray clone()
      Overrides:
      clone in class ArrayList<JDFAttributeMap>
      Returns:
      See Also:
    • removeMaps

      public void removeMaps(JDFAttributeMap map)
      remove all matching maps from this i.e. if map is subMap of this
      Parameters:
      map -
    • put

      public void put(JDFAttributeMap commonMap)
      put the value of all keys into every existing map
      Parameters:
      commonMap -