public class TabularDataSupport extends Object implements TabularData, Map<Object,Object>, Cloneable, Serializable
The TabularDataSupport
class is the open data class which implements the TabularData
and the Map
interfaces, and which is internally based on a hash map data structure.
Map.Entry<K,V>
public TabularDataSupport(TabularType tabularType)
Creates an empty TabularDataSupport
instance whose open-type is tabularType, and whose underlying HashMap
has a default initial capacity (101) and default load factor (0.75).
This constructor simply calls this(tabularType, 101, 0.75f);
tabularType
- the tabular type describing this TabularData
instance; cannot be null.IllegalArgumentException
- if the tabular type is null.public TabularDataSupport(TabularType tabularType, int initialCapacity, float loadFactor)
Creates an empty TabularDataSupport
instance whose open-type is tabularType, and whose underlying HashMap
has the specified initial capacity and load factor.
tabularType
- the tabular type describing this TabularData
instance; cannot be null.initialCapacity
- the initial capacity of the HashMap.loadFactor
- the load factor of the HashMapIllegalArgumentException
- if the initial capacity is less than zero, or the load factor is nonpositive, or the tabular type is null.public TabularType getTabularType()
Returns the tabular type describing this TabularData
instance.
getTabularType
in interface TabularData
public Object[] calculateIndex(CompositeData value)
Calculates the index that would be used in this TabularData
instance to refer to the specified composite data value parameter if it were added to this instance. This method checks for the type validity of the specified value, but does not check if the calculated index is already used to refer to a value in this TabularData
instance.
calculateIndex
in interface TabularData
value
- the composite data value whose index in this TabularData
instance is to be calculated; must be of the same composite type as this instance's row type; must not be null.TabularData
instance.NullPointerException
- if value is null
.InvalidOpenTypeException
- if value does not conform to this TabularData
instance's row type definition.public boolean containsKey(Object key)
Returns true
if and only if this TabularData
instance contains a CompositeData
value (ie a row) whose index is the specified key. If key cannot be cast to a one dimension array of Object instances, this method simply returns false
; otherwise it returns the the result of the call to this.containsKey((Object[]) key)
.
containsKey
in interface Map<Object,Object>
key
- the index value whose presence in this TabularData
instance is to be tested.true
if this TabularData
indexes a row value with the specified key.public boolean containsKey(Object[] key)
Returns true
if and only if this TabularData
instance contains a CompositeData
value (ie a row) whose index is the specified key. If key is null
or does not conform to this TabularData
instance's TabularType
definition, this method simply returns false
.
containsKey
in interface TabularData
key
- the index value whose presence in this TabularData
instance is to be tested.true
if this TabularData
indexes a row value with the specified key.public boolean containsValue(CompositeData value)
Returns true
if and only if this TabularData
instance contains the specified CompositeData
value. If value is null
or does not conform to this TabularData
instance's row type definition, this method simply returns false
.
containsValue
in interface TabularData
value
- the row value whose presence in this TabularData
instance is to be tested.true
if this TabularData
instance contains the specified row value.public boolean containsValue(Object value)
Returns true
if and only if this TabularData
instance contains the specified value.
containsValue
in interface Map<Object,Object>
value
- the row value whose presence in this TabularData
instance is to be tested.true
if this TabularData
instance contains the specified row value.public Object get(Object key)
This method simply calls get((Object[]) key)
.
get
in interface Map<Object,Object>
key
- the key whose associated value is to be returnednull
if this map contains no mapping for the keyNullPointerException
- if the key is null
ClassCastException
- if the key is not of the type Object[]
InvalidKeyException
- if the key does not conform to this TabularData
instance's TabularType
definitionpublic CompositeData get(Object[] key)
Returns the CompositeData
value whose index is key, or null
if there is no value mapping to key, in this TabularData
instance.
get
in interface TabularData
key
- the index of the value to get in this TabularData
instance; * must be valid with this TabularData
instance's row type definition; * must not be null.NullPointerException
- if the key is null
InvalidKeyException
- if the key does not conform to this TabularData
instance's TabularType
type definition.public Object put(Object key, Object value)
This method simply calls put((CompositeData) value)
and therefore ignores its key parameter which can be null
.
put
in interface Map<Object,Object>
key
- an ignored parameter.value
- the CompositeData
to put.NullPointerException
- if the value is null
ClassCastException
- if the value is not of the type CompositeData
InvalidOpenTypeException
- if the value does not conform to this TabularData
instance's TabularType
definitionKeyAlreadyExistsException
- if the key for the value parameter, calculated according to this TabularData
instance's TabularType
definition already maps to an existing valuepublic void put(CompositeData value)
Description copied from interface: TabularData
Adds value to this TabularData
instance. The composite type of value must be the same as this instance's row type (ie the composite type returned by this.getTabularType().
), and there must not already be an existing value in this getRowType()
TabularData
instance whose index is the same as the one calculated for the value to be added. The index for value is calculated according to this TabularData
instance's TabularType
definition (see TabularType.
).getIndexNames()
put
in interface TabularData
value
- the composite data value to be added as a new row to this TabularData
instance; must be of the same composite type as this instance's row type; must not be null.public Object remove(Object key)
This method simply calls remove((Object[]) key)
.
remove
in interface Map<Object,Object>
key
- an Object[]
representing the key to remove.null
if there was no mapping for key.NullPointerException
- if the key is null
ClassCastException
- if the key is not of the type Object[]
InvalidKeyException
- if the key does not conform to this TabularData
instance's TabularType
definitionpublic CompositeData remove(Object[] key)
Removes the CompositeData
value whose index is key from this TabularData
instance, and returns the removed value, or returns null
if there is no value whose index is key.
remove
in interface TabularData
key
- the index of the value to get in this TabularData
instance; must be valid with this TabularData
instance's row type definition; must not be null.null
if there was no mapping for key.NullPointerException
- if the key is null
InvalidKeyException
- if the key does not conform to this TabularData
instance's TabularType
definitionpublic void putAll(Map<?,?> t)
Add all the values contained in the specified map t to this TabularData
instance. This method converts the collection of values contained in this map into an array of CompositeData
values, if possible, and then call the method putAll(CompositeData[])
. Note that the keys used in the specified map t are ignored. This method allows, for example to add the content of another TabularData
instance with the same row type (but possibly different index names) into this instance.
putAll
in interface Map<Object,Object>
t
- the map whose values are to be added as new rows to this TabularData
instance; if t is null
or empty, this method returns without doing anything.NullPointerException
- if a value in t is null
.ClassCastException
- if a value in t is not an instance of CompositeData
.InvalidOpenTypeException
- if a value in t does not conform to this TabularData
instance's row type definition.KeyAlreadyExistsException
- if the index for a value in t, calculated according to this TabularData
instance's TabularType
definition already maps to an existing value in this instance, or two values in t have the same index.public void putAll(CompositeData[] values)
Add all the elements in values to this TabularData
instance. If any element in values does not satisfy the constraints defined in
, or if any two elements in values have the same index calculated according to this put
TabularData
instance's TabularType
definition, then an exception describing the failure is thrown and no element of values is added, thus leaving this TabularData
instance unchanged.
putAll
in interface TabularData
values
- the array of composite data values to be added as new rows to this TabularData
instance; if values is null
or empty, this method returns without doing anything.NullPointerException
- if an element of values is null
InvalidOpenTypeException
- if an element of values does not conform to this TabularData
instance's row type definition (ie its TabularType
definition)KeyAlreadyExistsException
- if the index for an element of values, calculated according to this TabularData
instance's TabularType
definition already maps to an existing value in this instance, or two elements of values have the same indexpublic void clear()
Removes all rows from this TabularDataSupport
instance.
public int size()
Returns the number of rows in this TabularDataSupport
instance.
size
in interface Map<Object,Object>
size
in interface TabularData
TabularDataSupport
instance.public boolean isEmpty()
Returns true
if this TabularDataSupport
instance contains no rows.
isEmpty
in interface Map<Object,Object>
isEmpty
in interface TabularData
true
if this TabularDataSupport
instance contains no rows.public Set<Object> keySet()
Returns a set view of the keys contained in the underlying map of this TabularDataSupport
instance used to index the rows. Each key contained in this Set
is an unmodifiable List<?>
so the returned set view is a Set<List<?>>
but is declared as a Set<Object>
for compatibility reasons. The set is backed by the underlying map of this TabularDataSupport
instance, so changes to the TabularDataSupport
instance are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding row from this TabularDataSupport
instance, via the Iterator.remove()
, Set.remove(java.lang.Object)
, Set.removeAll(java.util.Collection<?>)
, Set.retainAll(java.util.Collection<?>)
, and Set.clear()
operations. It does not support the Set.add(E)
or Set.addAll(java.util.Collection<? extends E>)
operations.
keySet
in interface Map<Object,Object>
keySet
in interface TabularData
Set<List<?>>
) of the keys used to index the rows of this TabularDataSupport
instance.public Collection<Object> values()
Returns a collection view of the rows contained in this TabularDataSupport
instance. The returned Collection
is a Collection<CompositeData>
but is declared as a Collection<Object>
for compatibility reasons. The returned collection can be used to iterate over the values. The collection is backed by the underlying map, so changes to the TabularDataSupport
instance are reflected in the collection, and vice-versa. The collection supports element removal, which removes the corresponding index to row mapping from this TabularDataSupport
instance, via the Iterator.remove()
, Collection.remove(java.lang.Object)
, Collection.removeAll(java.util.Collection<?>)
, Collection.retainAll(java.util.Collection<?>)
, and Collection.clear()
operations. It does not support the Collection.add(E)
or Collection.addAll(java.util.Collection<? extends E>)
operations.
values
in interface Map<Object,Object>
values
in interface TabularData
Collection<CompositeData>
) of the values contained in this TabularDataSupport
instance.public Set<Map.Entry<Object,Object>> entrySet()
Returns a collection view of the index to row mappings contained in this TabularDataSupport
instance. Each element in the returned collection is a Map.Entry<List<?>,CompositeData>
but is declared as a Map.Entry<Object,Object>
for compatibility reasons. Each of the map entry keys is an unmodifiable List<?>
. The collection is backed by the underlying map of this TabularDataSupport
instance, so changes to the TabularDataSupport
instance are reflected in the collection, and vice-versa. The collection supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove()
, Collection.remove(java.lang.Object)
, Collection.removeAll(java.util.Collection<?>)
, Collection.retainAll(java.util.Collection<?>)
, and Collection.clear()
operations. It does not support the Collection.add(E)
or Collection.addAll(java.util.Collection<? extends E>)
operations.
IMPORTANT NOTICE: Do not use the setValue
method of the Map.Entry
elements contained in the returned collection view. Doing so would corrupt the index to row mappings contained in this TabularDataSupport
instance.
entrySet
in interface Map<Object,Object>
Set<Map.Entry<List<?>,CompositeData>>
) of the mappings contained in this map.Map.Entry
public Object clone()
Returns a clone of this TabularDataSupport
instance: the clone is obtained by calling super.clone()
, and then cloning the underlying map. Only a shallow clone of the underlying map is made, i.e. no cloning of the indexes and row values is made as they are immutable.
public boolean equals(Object obj)
Compares the specified obj parameter with this TabularDataSupport
instance for equality.
Returns true
if and only if all of the following statements are true:
TabularData
interface,equals
method works properly for obj parameters which are different implementations of the TabularData
interface. equals
in interface Map<Object,Object>
equals
in interface TabularData
equals
in class Object
obj
- the object to be compared for equality with this TabularDataSupport
instance;true
if the specified object is equal to this TabularDataSupport
instance.Object.hashCode()
, HashMap
public int hashCode()
Returns the hash code value for this TabularDataSupport
instance.
The hash code of a TabularDataSupport
instance is the sum of the hash codes of all elements of information used in equals
comparisons (ie: its tabular type and its content, where the content is defined as all the CompositeData values).
This ensures that t1.equals(t2)
implies that t1.hashCode()==t2.hashCode()
for any two TabularDataSupport
instances t1
and t2
, as required by the general contract of the method Object.hashCode()
.
However, note that another instance of a class implementing the TabularData
interface may be equal to this TabularDataSupport
instance as defined by equals(java.lang.Object)
, but may have a different hash code if it is calculated differently.
hashCode
in interface Map<Object,Object>
hashCode
in interface TabularData
hashCode
in class Object
TabularDataSupport
instanceObject.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public String toString()
Returns a string representation of this TabularDataSupport
instance.
The string representation consists of the name of this class (ie javax.management.openmbean.TabularDataSupport
), the string representation of the tabular type of this instance, and the string representation of the contents (ie list the key=value mappings as returned by a call to dataMap.
toString()
).
toString
in interface TabularData
toString
in class Object
TabularDataSupport
instance
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.