public class TabularDataSupport extends Object implements TabularData, Map<Object,Object>, Cloneable, Serializable
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.| Constructor and Description |
|---|
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). |
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. |
| Modifier and Type | Method and Description |
|---|---|
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. |
void |
clear()
Removes all rows from this
TabularDataSupport instance. |
Object |
clone()
Returns a clone of this
TabularDataSupport instance:
the clone is obtained by calling super.clone(), and then cloning the underlying map. |
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. |
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. |
boolean |
containsValue(CompositeData value)
Returns
true if and only if this TabularData instance contains the specified
CompositeData value. |
boolean |
containsValue(Object value)
Returns
true if and only if this TabularData instance contains the specified
value. |
Set<Map.Entry<Object,Object>> |
entrySet()
Returns a collection view of the index to row mappings
contained in this
TabularDataSupport instance. |
boolean |
equals(Object obj)
Compares the specified obj parameter with this
TabularDataSupport instance for equality. |
Object |
get(Object key)
This method simply calls
get((Object[]) key). |
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. |
TabularType |
getTabularType()
Returns the tabular type describing this
TabularData instance. |
int |
hashCode()
Returns the hash code value for this
TabularDataSupport instance. |
boolean |
isEmpty()
Returns
true if this TabularDataSupport instance contains no rows. |
Set<Object> |
keySet()
Returns a set view of the keys contained in the underlying map of this
TabularDataSupport instance used to index the rows. |
void |
put(CompositeData value)
Adds value to this
TabularData instance. |
Object |
put(Object key,
Object value)
This method simply calls
put((CompositeData) value) and
therefore ignores its key parameter which can be null. |
void |
putAll(CompositeData[] values)
Add all the elements in values to this
TabularData instance. |
void |
putAll(Map<?,?> t)
Add all the values contained in the specified map t
to this
TabularData instance. |
Object |
remove(Object key)
This method simply calls
remove((Object[]) key). |
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. |
int |
size()
Returns the number of rows in this
TabularDataSupport instance. |
String |
toString()
Returns a string representation of this
TabularDataSupport instance. |
Collection<Object> |
values()
Returns a collection view of the rows contained in this
TabularDataSupport instance. |
finalize, getClass, notify, notifyAll, wait, wait, waitcompute, computeIfAbsent, computeIfPresent, entry, forEach, getOrDefault, merge, of, of, of, of, of, of, of, of, of, of, of, ofEntries, putIfAbsent, remove, replace, replace, replaceAllpublic TabularDataSupport(TabularType tabularType)
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)
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()
TabularData instance.getTabularType in interface TabularDatapublic Object[] calculateIndex(CompositeData value)
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 TabularDatavalue - 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)
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 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)
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 TabularDatakey - 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)
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 TabularDatavalue - 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)
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)
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 nullClassCastException - 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)
CompositeData value whose index is
key, or null if there is no value mapping
to key, in this TabularData instance.get in interface TabularDatakey - 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 nullInvalidKeyException - if the key does not conform
to this TabularData instance's
TabularType type definition.public Object put(Object key, Object value)
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 nullClassCastException - if the value is not of
the type CompositeDataInvalidOpenTypeException - 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)
TabularDataTabularData instance.
The composite type of value must be the same as this
instance's row type (ie the composite type returned by
this.getTabularType().getRowType()), and there must not already be an existing
value in this 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 TabularDatavalue - 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)
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 nullClassCastException - 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)
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 TabularDatakey - 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 nullInvalidKeyException - if the key does not conform to this TabularData instance's
TabularType definitionpublic void putAll(Map<?,?> t)
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)
TabularData instance. If any element in
values does not satisfy the constraints defined in
put, or if any two
elements in values have the same index calculated
according to this 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 TabularDatavalues - 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 nullInvalidOpenTypeException - 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()
TabularDataSupport instance.public int size()
TabularDataSupport instance.public boolean isEmpty()
true if this TabularDataSupport instance contains no rows.public Set<Object> keySet()
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.public Collection<Object> values()
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.public Set<Map.Entry<Object,Object>> entrySet()
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.
public Object clone()
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)
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 TabularDataequals in class Objectobj - the object to be compared for equality with this TabularDataSupport instance;true if the specified object is equal to this TabularDataSupport instance.Object.hashCode(),
HashMappublic int hashCode()
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 TabularDatahashCode in class ObjectTabularDataSupport instanceObject.equals(java.lang.Object),
System.identityHashCode(java.lang.Object)public String toString()
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 TabularDatatoString in class ObjectTabularDataSupport instance Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.
DRAFT 9-internal+0-2016-01-26-133437.ivan.openjdk9onspinwait