Class MetamapGroup

  • Direct Known Subclasses:
    ValueInfoMetamapGroup

    public class MetamapGroup
    extends java.lang.Object
    Represents a group of items containing related sets of metadata. Each set of metadata is a key/value map, in which the key is a string. If different items have metadata entries with the same key, they may be supposed to represent the same kind of quantity. A single, automatically maintained list is therefore kept of the keys which crop up in entries in any of the items' metadata sets. An ordering may be imposed on this list.
    Author:
    Mark Taylor (Starlink)
    • Constructor Summary

      Constructors 
      Constructor Description
      MetamapGroup​(int nitem)
      Initialises a MetamapGroup which will contain a given number of items.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addEntry​(int item, java.lang.String key, java.lang.Object value)
      Adds an entry to one of the metadata sets.
      java.lang.Object getEntry​(int item, java.lang.String key)
      Retrieves an entry from one of the metadata sets by key.
      java.util.List getKeyOrder()
      Returns the list which defines ordering for any keys which crop up.
      java.util.List getKnownKeys()
      Returns a list of all the keys which appear in any of the metadata sets.
      java.util.Map[] getMetamaps()
      Returns the array of metadata maps.
      int getNumMaps()
      Returns the number of metadata maps.
      boolean hasEntry​(int item, java.lang.String key)
      Indicates whether an entry with a given key is present in one of the metadata sets.
      void setKeyOrder​(java.util.List ordering)
      Mandates an ordering to be imposed on the metadata keys.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MetamapGroup

        public MetamapGroup​(int nitem)
        Initialises a MetamapGroup which will contain a given number of items.
        Parameters:
        nitem - the number of items in the group
    • Method Detail

      • addEntry

        public void addEntry​(int item,
                             java.lang.String key,
                             java.lang.Object value)
        Adds an entry to one of the metadata sets. No entry is added if value==null or if value.toString().length()==0.
        Parameters:
        item - the index of the set to which the entry should be added
        key - the metadatum key
        value - the metadatum value
      • getEntry

        public java.lang.Object getEntry​(int item,
                                         java.lang.String key)
        Retrieves an entry from one of the metadata sets by key. null is returned if no such entry exists.
        Parameters:
        item - the index of the set from which the entry should be got
        key - the metadatum key
        Returns:
        the value of the entry associated with key, or null if there isn't one
      • hasEntry

        public boolean hasEntry​(int item,
                                java.lang.String key)
        Indicates whether an entry with a given key is present in one of the metadata sets.
        Parameters:
        item - the index of the set from which the entry should be got
        key - the metadatum key
        Returns:
        true iff the entry corresponding to key exists in set number item
      • setKeyOrder

        public void setKeyOrder​(java.util.List ordering)
        Mandates an ordering to be imposed on the metadata keys. The effect of this call is to influence the order of the list returned by subsequent calls of getKnownKeys().

        The supplied argument ordering is a list of strings; a string which appears earlier in this list is considered to be earlier in the list of metadata keys. Any which do not appear in this list will be ranked in an unspecified order at the end.

        Parameters:
        ordering - a list of strings which may appear in the metadata keys
      • getKeyOrder

        public java.util.List getKeyOrder()
        Returns the list which defines ordering for any keys which crop up. This will have the same contents as the argument of the last call to setKeyOrder(java.util.List), or an empty list if that method has not been called.
        Returns:
        current key ordering
      • getKnownKeys

        public java.util.List getKnownKeys()
        Returns a list of all the keys which appear in any of the metadata sets. The order is determined by the most recent call of setKeyOrder(java.util.List). If it has never been called they will be returned in insertion order.
        Returns:
        the list of map keys
      • getMetamaps

        public java.util.Map[] getMetamaps()
        Returns the array of metadata maps.
        Returns:
        an array in which the n'th element is the n'th item's metadata map
      • getNumMaps

        public int getNumMaps()
        Returns the number of metadata maps.
        Returns:
        the number of maps in this group