uk.ac.starlink.datanode.nodes
Class MetamapGroup

java.lang.Object
  extended by uk.ac.starlink.datanode.nodes.MetamapGroup
Direct Known Subclasses:
ValueInfoMetamapGroup

public class MetamapGroup
extends 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
MetamapGroup(int nitem)
          Initialises a MetamapGroup which will contain a given number of items.
 
Method Summary
 void addEntry(int item, String key, Object value)
          Adds an entry to one of the metadata sets.
 Object getEntry(int item, String key)
          Retrieves an entry from one of the metadata sets by key.
 List getKeyOrder()
          Returns the list which defines ordering for any keys which crop up.
 List getKnownKeys()
          Returns a list of all the keys which appear in any of the metadata sets.
 Map[] getMetamaps()
          Returns the array of metadata maps.
 int getNumMaps()
          Returns the number of metadata maps.
 boolean hasEntry(int item, String key)
          Indicates whether an entry with a given key is present in one of the metadata sets.
 void setKeyOrder(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,
                     String key,
                     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 Object getEntry(int item,
                       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,
                        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(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 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 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 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


Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.