Package uk.ac.starlink.datanode.nodes
Class MetamapGroup
- java.lang.Object
-
- uk.ac.starlink.datanode.nodes.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.
-
-
-
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 addedkey
- the metadatum keyvalue
- 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 gotkey
- 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 gotkey
- 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 ofgetKnownKeys()
.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 tosetKeyOrder(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 ofsetKeyOrder(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
-
-