- java.lang.Object
-
- javax.management.openmbean.TabularDataSupport
-
- All Implemented Interfaces:
Serializable,Cloneable,Map<Object,Object>,TabularData
public class TabularDataSupport extends Object implements TabularData, Map<Object,Object>, Cloneable, Serializable
TheTabularDataSupportclass is the open data class which implements theTabularDataand theMapinterfaces, and which is internally based on a hash map data structure.- Since:
- 1.5
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description TabularDataSupport(TabularType tabularType)Creates an emptyTabularDataSupportinstance whose open-type is tabularType, and whose underlyingHashMaphas a default initial capacity (101) and default load factor (0.75).TabularDataSupport(TabularType tabularType, int initialCapacity, float loadFactor)Creates an emptyTabularDataSupportinstance whose open-type is tabularType, and whose underlyingHashMaphas the specified initial capacity and load factor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object[]calculateIndex(CompositeData value)Calculates the index that would be used in thisTabularDatainstance to refer to the specified composite data value parameter if it were added to this instance.voidclear()Removes all rows from thisTabularDataSupportinstance.Objectclone()Returns a clone of thisTabularDataSupportinstance: the clone is obtained by callingsuper.clone(), and then cloning the underlying map.booleancontainsKey(Object key)Returnstrueif and only if thisTabularDatainstance contains aCompositeDatavalue (ie a row) whose index is the specified key.booleancontainsKey(Object[] key)Returnstrueif and only if thisTabularDatainstance contains aCompositeDatavalue (ie a row) whose index is the specified key.booleancontainsValue(Object value)Returnstrueif and only if thisTabularDatainstance contains the specified value.booleancontainsValue(CompositeData value)Returnstrueif and only if thisTabularDatainstance contains the specifiedCompositeDatavalue.Set<Map.Entry<Object,Object>>entrySet()Returns a collection view of the index to row mappings contained in thisTabularDataSupportinstance.booleanequals(Object obj)Compares the specified obj parameter with thisTabularDataSupportinstance for equality.Objectget(Object key)This method simply callsget((Object[]) key).CompositeDataget(Object[] key)Returns theCompositeDatavalue whose index is key, ornullif there is no value mapping to key, in thisTabularDatainstance.TabularTypegetTabularType()Returns the tabular type describing thisTabularDatainstance.inthashCode()Returns the hash code value for thisTabularDataSupportinstance.booleanisEmpty()Returnstrueif thisTabularDataSupportinstance contains no rows.Set<Object>keySet()Returns a set view of the keys contained in the underlying map of thisTabularDataSupportinstance used to index the rows.Objectput(Object key, Object value)This method simply callsput((CompositeData) value)and therefore ignores its key parameter which can benull.voidputAll(Map<?,?> t)Add all the values contained in the specified map t to thisTabularDatainstance.voidputAll(CompositeData[] values)Add all the elements in values to thisTabularDatainstance.Objectremove(Object key)This method simply callsremove((Object[]) key).CompositeDataremove(Object[] key)Removes theCompositeDatavalue whose index is key from thisTabularDatainstance, and returns the removed value, or returnsnullif there is no value whose index is key.intsize()Returns the number of rows in thisTabularDataSupportinstance.StringtoString()Returns a string representation of thisTabularDataSupportinstance.Collection<Object>values()Returns a collection view of the rows contained in thisTabularDataSupportinstance.-
Methods declared in interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Methods declared in interface javax.management.openmbean.TabularData
put
-
-
-
-
Constructor Detail
-
TabularDataSupport
public TabularDataSupport(TabularType tabularType)
Creates an emptyTabularDataSupportinstance whose open-type is tabularType, and whose underlyingHashMaphas a default initial capacity (101) and default load factor (0.75).This constructor simply calls
this(tabularType, 101, 0.75f);- Parameters:
tabularType- the tabular type describing thisTabularDatainstance; cannot be null.- Throws:
IllegalArgumentException- if the tabular type is null.
-
TabularDataSupport
public TabularDataSupport(TabularType tabularType, int initialCapacity, float loadFactor)
Creates an emptyTabularDataSupportinstance whose open-type is tabularType, and whose underlyingHashMaphas the specified initial capacity and load factor.- Parameters:
tabularType- the tabular type describing thisTabularDatainstance; cannot be null.initialCapacity- the initial capacity of the HashMap.loadFactor- the load factor of the HashMap- Throws:
IllegalArgumentException- if the initial capacity is less than zero, or the load factor is nonpositive, or the tabular type is null.
-
-
Method Detail
-
getTabularType
public TabularType getTabularType()
Returns the tabular type describing thisTabularDatainstance.- Specified by:
getTabularTypein interfaceTabularData- Returns:
- the tabular type.
-
calculateIndex
public Object[] calculateIndex(CompositeData value)
Calculates the index that would be used in thisTabularDatainstance 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 thisTabularDatainstance.- Specified by:
calculateIndexin interfaceTabularData- Parameters:
value- the composite data value whose index in thisTabularDatainstance is to be calculated; must be of the same composite type as this instance's row type; must not be null.- Returns:
- the index that the specified value would have in this
TabularDatainstance. - Throws:
NullPointerException- if value isnull.InvalidOpenTypeException- if value does not conform to thisTabularDatainstance's row type definition.
-
containsKey
public boolean containsKey(Object key)
Returnstrueif and only if thisTabularDatainstance contains aCompositeDatavalue (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 returnsfalse; otherwise it returns the result of the call tothis.containsKey((Object[]) key).- Specified by:
containsKeyin interfaceMap<Object,Object>- Parameters:
key- the index value whose presence in thisTabularDatainstance is to be tested.- Returns:
trueif thisTabularDataindexes a row value with the specified key.
-
containsKey
public boolean containsKey(Object[] key)
Returnstrueif and only if thisTabularDatainstance contains aCompositeDatavalue (ie a row) whose index is the specified key. If key isnullor does not conform to thisTabularDatainstance'sTabularTypedefinition, this method simply returnsfalse.- Specified by:
containsKeyin interfaceTabularData- Parameters:
key- the index value whose presence in thisTabularDatainstance is to be tested.- Returns:
trueif thisTabularDataindexes a row value with the specified key.
-
containsValue
public boolean containsValue(CompositeData value)
Returnstrueif and only if thisTabularDatainstance contains the specifiedCompositeDatavalue. If value isnullor does not conform to thisTabularDatainstance's row type definition, this method simply returnsfalse.- Specified by:
containsValuein interfaceTabularData- Parameters:
value- the row value whose presence in thisTabularDatainstance is to be tested.- Returns:
trueif thisTabularDatainstance contains the specified row value.
-
containsValue
public boolean containsValue(Object value)
Returnstrueif and only if thisTabularDatainstance contains the specified value.- Specified by:
containsValuein interfaceMap<Object,Object>- Parameters:
value- the row value whose presence in thisTabularDatainstance is to be tested.- Returns:
trueif thisTabularDatainstance contains the specified row value.
-
get
public Object get(Object key)
This method simply callsget((Object[]) key).- Specified by:
getin interfaceMap<Object,Object>- Parameters:
key- the key whose associated value is to be returned- Returns:
- the value to which the specified key is mapped, or
nullif this map contains no mapping for the key - Throws:
NullPointerException- if the key isnullClassCastException- if the key is not of the typeObject[]InvalidKeyException- if the key does not conform to thisTabularDatainstance'sTabularTypedefinition
-
get
public CompositeData get(Object[] key)
Returns theCompositeDatavalue whose index is key, ornullif there is no value mapping to key, in thisTabularDatainstance.- Specified by:
getin interfaceTabularData- Parameters:
key- the index of the value to get in thisTabularDatainstance; must be valid with thisTabularDatainstance's row type definition; must not be null.- Returns:
- the value corresponding to key.
- Throws:
NullPointerException- if the key isnullInvalidKeyException- if the key does not conform to thisTabularDatainstance'sTabularTypetype definition.
-
put
public Object put(Object key, Object value)
This method simply callsput((CompositeData) value)and therefore ignores its key parameter which can benull.- Specified by:
putin interfaceMap<Object,Object>- Parameters:
key- an ignored parameter.value- theCompositeDatato put.- Returns:
- the value which is put
- Throws:
NullPointerException- if the value isnullClassCastException- if the value is not of the typeCompositeDataInvalidOpenTypeException- if the value does not conform to thisTabularDatainstance'sTabularTypedefinitionKeyAlreadyExistsException- if the key for the value parameter, calculated according to thisTabularDatainstance'sTabularTypedefinition already maps to an existing value
-
remove
public Object remove(Object key)
This method simply callsremove((Object[]) key).- Specified by:
removein interfaceMap<Object,Object>- Parameters:
key- anObject[]representing the key to remove.- Returns:
- previous value associated with specified key, or
nullif there was no mapping for key. - Throws:
NullPointerException- if the key isnullClassCastException- if the key is not of the typeObject[]InvalidKeyException- if the key does not conform to thisTabularDatainstance'sTabularTypedefinition
-
remove
public CompositeData remove(Object[] key)
Removes theCompositeDatavalue whose index is key from thisTabularDatainstance, and returns the removed value, or returnsnullif there is no value whose index is key.- Specified by:
removein interfaceTabularData- Parameters:
key- the index of the value to get in thisTabularDatainstance; must be valid with thisTabularDatainstance's row type definition; must not be null.- Returns:
- previous value associated with specified key, or
nullif there was no mapping for key. - Throws:
NullPointerException- if the key isnullInvalidKeyException- if the key does not conform to thisTabularDatainstance'sTabularTypedefinition
-
putAll
public void putAll(Map<?,?> t)
Add all the values contained in the specified map t to thisTabularDatainstance. This method converts the collection of values contained in this map into an array ofCompositeDatavalues, if possible, and then call the methodputAll(CompositeData[]). Note that the keys used in the specified map t are ignored. This method allows, for example to add the content of anotherTabularDatainstance with the same row type (but possibly different index names) into this instance.- Specified by:
putAllin interfaceMap<Object,Object>- Parameters:
t- the map whose values are to be added as new rows to thisTabularDatainstance; if t isnullor empty, this method returns without doing anything.- Throws:
NullPointerException- if a value in t isnull.ClassCastException- if a value in t is not an instance ofCompositeData.InvalidOpenTypeException- if a value in t does not conform to thisTabularDatainstance's row type definition.KeyAlreadyExistsException- if the index for a value in t, calculated according to thisTabularDatainstance'sTabularTypedefinition already maps to an existing value in this instance, or two values in t have the same index.
-
putAll
public void putAll(CompositeData[] values)
Add all the elements in values to thisTabularDatainstance. If any element in values does not satisfy the constraints defined input, or if any two elements in values have the same index calculated according to thisTabularDatainstance'sTabularTypedefinition, then an exception describing the failure is thrown and no element of values is added, thus leaving thisTabularDatainstance unchanged.- Specified by:
putAllin interfaceTabularData- Parameters:
values- the array of composite data values to be added as new rows to thisTabularDatainstance; if values isnullor empty, this method returns without doing anything.- Throws:
NullPointerException- if an element of values isnullInvalidOpenTypeException- if an element of values does not conform to thisTabularDatainstance's row type definition (ie itsTabularTypedefinition)KeyAlreadyExistsException- if the index for an element of values, calculated according to thisTabularDatainstance'sTabularTypedefinition already maps to an existing value in this instance, or two elements of values have the same index
-
clear
public void clear()
Removes all rows from thisTabularDataSupportinstance.
-
size
public int size()
Returns the number of rows in thisTabularDataSupportinstance.
-
isEmpty
public boolean isEmpty()
Returnstrueif thisTabularDataSupportinstance contains no rows.
-
keySet
public Set<Object> keySet()
Returns a set view of the keys contained in the underlying map of thisTabularDataSupportinstance used to index the rows. Each key contained in thisSetis an unmodifiableList<?>so the returned set view is aSet<List<?>>but is declared as aSet<Object>for compatibility reasons. The set is backed by the underlying map of thisTabularDataSupportinstance, so changes to theTabularDataSupportinstance are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding row from thisTabularDataSupportinstance, via theIterator.remove(),Set.remove(java.lang.Object),Set.removeAll(java.util.Collection<?>),Set.retainAll(java.util.Collection<?>), andSet.clear()operations. It does not support theSet.add(E)orSet.addAll(java.util.Collection<? extends E>)operations.
-
values
public Collection<Object> values()
Returns a collection view of the rows contained in thisTabularDataSupportinstance. The returnedCollectionis aCollection<CompositeData>but is declared as aCollection<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 theTabularDataSupportinstance are reflected in the collection, and vice-versa. The collection supports element removal, which removes the corresponding index to row mapping from thisTabularDataSupportinstance, via theIterator.remove(),Collection.remove(java.lang.Object),Collection.removeAll(java.util.Collection<?>),Collection.retainAll(java.util.Collection<?>), andCollection.clear()operations. It does not support theCollection.add(E)orCollection.addAll(java.util.Collection<? extends E>)operations.
-
entrySet
public Set<Map.Entry<Object,Object>> entrySet()
Returns a collection view of the index to row mappings contained in thisTabularDataSupportinstance. Each element in the returned collection is aMap.Entry<List<?>,CompositeData>but is declared as aMap.Entry<Object,Object>for compatibility reasons. Each of the map entry keys is an unmodifiableList<?>. The collection is backed by the underlying map of thisTabularDataSupportinstance, so changes to theTabularDataSupportinstance are reflected in the collection, and vice-versa. The collection supports element removal, which removes the corresponding mapping from the map, via theIterator.remove(),Collection.remove(java.lang.Object),Collection.removeAll(java.util.Collection<?>),Collection.retainAll(java.util.Collection<?>), andCollection.clear()operations. It does not support theCollection.add(E)orCollection.addAll(java.util.Collection<? extends E>)operations.IMPORTANT NOTICE: Do not use the
setValuemethod of theMap.Entryelements contained in the returned collection view. Doing so would corrupt the index to row mappings contained in thisTabularDataSupportinstance.
-
clone
public Object clone()
Returns a clone of thisTabularDataSupportinstance: the clone is obtained by callingsuper.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.
-
equals
public boolean equals(Object obj)
Compares the specified obj parameter with thisTabularDataSupportinstance for equality.Returns
trueif and only if all of the following statements are true:- obj is non null,
- obj also implements the
TabularDatainterface, - their tabular types are equal
- their contents (ie all CompositeData values) are equal.
equalsmethod works properly for obj parameters which are different implementations of theTabularDatainterface.
- Specified by:
equalsin interfaceMap<Object,Object>- Specified by:
equalsin interfaceTabularData- Overrides:
equalsin classObject- Parameters:
obj- the object to be compared for equality with thisTabularDataSupportinstance;- Returns:
trueif the specified object is equal to thisTabularDataSupportinstance.- See Also:
Object.hashCode()
-
hashCode
public int hashCode()
Returns the hash code value for thisTabularDataSupportinstance.The hash code of a
TabularDataSupportinstance is the sum of the hash codes of all elements of information used inequalscomparisons (ie: its tabular type and its content, where the content is defined as all the CompositeData values).This ensures that
t1.equals(t2)implies thatt1.hashCode()==t2.hashCode()for any twoTabularDataSupportinstancest1andt2, as required by the general contract of the methodObject.hashCode().However, note that another instance of a class implementing the
TabularDatainterface may be equal to thisTabularDataSupportinstance as defined byequals(java.lang.Object), but may have a different hash code if it is calculated differently.- Specified by:
hashCodein interfaceMap<Object,Object>- Specified by:
hashCodein interfaceTabularData- Overrides:
hashCodein classObject- Returns:
- the hash code value for this
TabularDataSupportinstance - See Also:
Object.equals(java.lang.Object)
-
toString
public String toString()
Returns a string representation of thisTabularDataSupportinstance.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 todataMap.toString()).- Specified by:
toStringin interfaceTabularData- Overrides:
toStringin classObject- Returns:
- a string representation of this
TabularDataSupportinstance
-
-