javax.management.openmbean
public class TabularDataSupport extends Object implements TabularData, Serializable, Cloneable, Map<Object,Object>
TabularData
interface using a HashMap
.Constructor and Description |
---|
TabularDataSupport(TabularType type)
Constructs a new empty
TabularDataSupport with the
specified type. |
TabularDataSupport(TabularType type,
int cap,
float lf)
Constructs a new empty
TabularDataSupport with the
specified type and the supplied initial capacity and load factor
being used for the underlying HashMap . |
Modifier and Type | Method and Description |
---|---|
Object[] |
calculateIndex(CompositeData val)
Calculates the index the specified
CompositeData value
would have, if it was to be added to this TabularData
instance. |
void |
clear()
Removes all
CompositeData values from the table. |
Object |
clone()
Returns a shallow clone of the information, as obtained by the
Object implementation of Object.clone() . |
boolean |
containsKey(Object key)
Returns true iff this instance of the
TabularData class
contains a CompositeData value at the specified index. |
boolean |
containsKey(Object[] key)
Returns true iff this instance of the
TabularData class
contains a CompositeData value at the specified index. |
boolean |
containsValue(CompositeData val)
Returns true iff this instance of the
TabularData class
contains the specified CompositeData value. |
boolean |
containsValue(Object val)
Returns true iff this instance of the
TabularData class
contains the specified CompositeData value. |
Set<Map.Entry<Object,Object>> |
entrySet()
Returns a set view of the mappings in this Map.
|
boolean |
equals(Object obj)
Compares the specified object with this object for equality.
|
Object |
get(Object key)
Retrieves the value for the specified key by simply
calling
get((Object[]) key) . |
CompositeData |
get(Object[] key)
Retrieves the
CompositeData value for the specified
key, or null if no such mapping exists. |
TabularType |
getTabularType()
Returns the tabular type which corresponds to this instance
of
TabularData . |
int |
hashCode()
Returns the hash code of the composite data type.
|
boolean |
isEmpty()
Returns true if this
TabularData instance
contains no CompositeData values. |
Set<Object> |
keySet()
Returns a set view of the keys in this Map.
|
void |
put(CompositeData val)
Adds the specified
CompositeData value to the
table. |
Object |
put(Object key,
Object val)
Adds the specified
CompositeData value to the
table, ignoring the supplied key, by simply calling
put((CompositeData) val) . |
void |
putAll(CompositeData[] vals)
Adds each of the specified
CompositeData values
to the table. |
void |
putAll(Map<?,?> m)
Converts each value from the specified map to a member of an
array of
CompositeData values and adds them using #put(CompositeData[]) , if possible. |
Object |
remove(Object key)
Removes the value for the specified key by simply
calling
remove((Object[]) key) . |
CompositeData |
remove(Object[] key)
Removes the
CompositeData value located at the
specified index. |
int |
size()
Returns the number of
CompositeData values or rows
in the table. |
String |
toString()
Returns a textual representation of this instance.
|
Collection<Object> |
values()
Returns a collection (or bag) view of the values in this Map.
|
public TabularDataSupport(TabularType type)
TabularDataSupport
with the
specified type. The type may not be null. This constructor
simply calls the other, with the default initial capacity of
101
and default load factor of 0.75
.type
- the tabular type of this tabular data instance.IllegalArgumentException
- if type
is
null
.public TabularDataSupport(TabularType type, int cap, float lf)
TabularDataSupport
with the
specified type and the supplied initial capacity and load factor
being used for the underlying HashMap
. The
type may not be null and the initial capacity and load factor
must be positive.type
- the tabular type of this tabular data instance.cap
- the initial capacity of the underlying map.lf
- the load factor of the underlying map.IllegalArgumentException
- if type
is
null
, or
cap
or
lf
are
negative.public Object[] calculateIndex(CompositeData val)
CompositeData
value
would have, if it was to be added to this TabularData
instance. This method includes a check that the type of the
given value is the same as the row type of this instance, but not
a check for existing instances of the given value. The value
must also not be null
. Possible indices are
selected by the TabularType.getIndexNames()
method of
this instance's tabular type. The returned indices are the
values of the fields in the supplied CompositeData
instance that match the names given in the TabularType
.calculateIndex
in interface TabularData
val
- the CompositeData
value whose index should
be calculated.NullPointerException
- if the value is null
.InvalidOpenTypeException
- if the value does not match the
row type of this instance.public void clear()
CompositeData
values from the table.public Object clone()
Object
implementation of Object.clone()
. The map
is also cloned, but it still references the same objects.clone
in class Object
TabularDataSupport
.Cloneable
public boolean containsKey(Object key)
TabularData
class
contains a CompositeData
value at the specified index.
The method returns false
if the given key can
not be cast to an Object
array; otherwise
it returns the result of containsKey(java.lang.Object[])
.containsKey
in interface Map<Object,Object>
key
- the key to test for.CompositeData
value.public boolean containsKey(Object[] key)
TabularData
class
contains a CompositeData
value at the specified index.
In any other circumstance, including if the given key
is null
or of the incorrect type, according to
the TabularType
of this instance, this method returns
false.containsKey
in interface TabularData
key
- the key to test for.CompositeData
value.public boolean containsValue(Object val)
TabularData
class
contains the specified CompositeData
value. If the given
value is not an instance of CompositeData
, this method
simply returns false.containsValue
in interface Map<Object,Object>
val
- the value to test for.public boolean containsValue(CompositeData val)
TabularData
class
contains the specified CompositeData
value.
In any other circumstance, including if the given value
is null
or of the incorrect type, according to
the TabularType
of this instance, this method returns
false.containsValue
in interface TabularData
val
- the value to test for.public Set<Map.Entry<Object,Object>> entrySet()
Returns a set view of the mappings in this Map. Each element in the
set is a Map.Entry. The set is backed by the map, so that changes in
one show up in the other. Modifications made while an iterator is
in progress cause undefined behavior. If the set supports removal,
these methods remove the underlying mapping from the map:
Iterator.remove
, Set.remove
,
removeAll
, retainAll
, and clear
.
Element addition, via add
or addAll
, is
not supported via this set.
Note: using the {@link java.util.Map.Entry#setValue(Object) will cause corruption of the index to row mappings.
public boolean equals(Object obj)
TabularData
with the same row type,
and CompositeData
values. The two compared instances may
be equivalent even if they represent different implementations
of TabularData
.equals
in interface Map<Object,Object>
equals
in interface TabularData
equals
in class Object
obj
- the object to compare for equality.obj
is equal to this
.Object.hashCode()
public Object get(Object key)
get((Object[]) key)
.get
in interface Map<Object,Object>
key
- the key whose value should be returned.CompositeData
value, or
null
if one does not exist.NullPointerException
- if the key is null
.ClassCastException
- if the key is not an instance
of Object[]
.InvalidKeyException
- if the key does not match
the TabularType
of this
instance.Map.containsKey(Object)
public CompositeData get(Object[] key)
CompositeData
value for the specified
key, or null
if no such mapping exists.get
in interface TabularData
key
- the key whose value should be returned.CompositeData
value, or
null
if one does not exist.NullPointerException
- if the key is null
.InvalidKeyException
- if the key does not match
the TabularType
of this
instance.public TabularType getTabularType()
TabularData
.getTabularType
in interface TabularData
public int hashCode()
equals(java.lang.Object)
method, thus ensuring that the
hashcode is compatible with the equality test.hashCode
in interface Map<Object,Object>
hashCode
in interface TabularData
hashCode
in class Object
Object.equals(Object)
,
System.identityHashCode(Object)
public boolean isEmpty()
TabularData
instance
contains no CompositeData
values.public Set<Object> keySet()
Iterator.remove
, Set.remove
,
removeAll
, retainAll
, and clear
.
Element addition, via add
or addAll
, is
not supported via this set.public void put(CompositeData val)
CompositeData
value to the
table. The value must be non-null, of the same type
as the row type of this instance, and must not have
the same index as an existing value. The index is
calculated using the index names of the
TabularType
for this instance.put
in interface TabularData
val
- the CompositeData
value to add.NullPointerException
- if val
is
null
.InvalidOpenTypeException
- if the type of the
given value does not
match the row type.KeyAlreadyExistsException
- if the value has the
same calculated index
as an existing value.public Object put(Object key, Object val)
CompositeData
value to the
table, ignoring the supplied key, by simply calling
put((CompositeData) val)
.put
in interface Map<Object,Object>
key
- ignored.val
- the CompositeData
value to add.CompositeData
value.NullPointerException
- if val
is
null
.InvalidOpenTypeException
- if the type of the
given value does not
match the row type.KeyAlreadyExistsException
- if the value has the
same calculated index
as an existing value.Map.containsKey(Object)
public void putAll(CompositeData[] vals)
CompositeData
values
to the table. Each element of the array must meet the
conditions given for the put(CompositeData)
method. In addition, the index of each value in the
array must be distinct from the index of the other
values in the array, as well as from the existing values
in the table. The operation should be atomic; if one
value can not be added, then none of the values should
be. If the array is null
or empty, the
method simply returns.putAll
in interface TabularData
vals
- the CompositeData
values to add.NullPointerException
- if a value from the array is
null
.InvalidOpenTypeException
- if the type of a
given value does not
match the row type.KeyAlreadyExistsException
- if a value has the
same calculated index
as an existing value or
of one of the other
specified values.public void putAll(Map<?,?> m)
CompositeData
values and adds them using #put(CompositeData[])
, if possible. As in put(Object,Object)
, the keys are simply ignored. This method
is useful for adding the CompositeData
values from a
different TabularData
instance, which uses the same
TabularType
but a different selection of index names, to
this one. If the map is null
or empty, the method
simply returns.putAll
in interface Map<Object,Object>
m
- the map to add. Only the values are used and must
all be instances of CompositeData
.NullPointerException
- if a value from the map is
null
.ClassCastException
- if a value from the map is not
an instance of CompositeData
.InvalidOpenTypeException
- if the type of the
given value does not
match the row type.KeyAlreadyExistsException
- if the value has the
same calculated index
as an existing value or
of one of the other
specified values.Map.put(Object, Object)
public Object remove(Object key)
remove((Object[]) key)
.remove
in interface Map<Object,Object>
key
- the key whose value should be removed.null
if
there is no value for the given key.NullPointerException
- if the key is null
.ClassCastException
- if the key is not an instance
of Object[]
.InvalidOpenTypeException
- if the key does not match
the TabularType
of this
instance.public CompositeData remove(Object[] key)
CompositeData
value located at the
specified index. null
is returned if the
value does not exist. Otherwise, the removed value is
returned.remove
in interface TabularData
key
- the key of the value to remove.null
if
there is no value for the given key.NullPointerException
- if the key is null
.InvalidOpenTypeException
- if the key does not match
the TabularType
of this
instance.public int size()
CompositeData
values or rows
in the table.public String toString()
javax.management.openmbean.TabularDataSupport
)
and the result of calling toString()
on the
tabular type and underlying hash map instance.toString
in interface TabularData
toString
in class Object
String
representation of the
object.Object.getClass()
,
Object.hashCode()
,
Class.getName()
,
Integer.toHexString(int)
public Collection<Object> values()
Iterator.remove
,
Collection.remove
, removeAll
,
retainAll
, and clear
. Element addition, via
add
or addAll
, is not supported via this
collection.