javax.management.openmbean
Class TabularDataSupport

java.lang.Object
  extended byjavax.management.openmbean.TabularDataSupport
All Implemented Interfaces:
java.lang.Cloneable, java.util.Map, java.io.Serializable, TabularData

public class TabularDataSupport
extends java.lang.Object
implements TabularData, java.util.Map, java.lang.Cloneable, java.io.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

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class java.util.Map
java.util.Map.Entry
 
Constructor Summary
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
 
Method Summary
 java.lang.Object[] calculateIndex(CompositeData value)
          Calculates the index that would be used in this TabularData instance to refer to the specified composite data value parameter is 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 tabular data instance
 void clear()
          clears this instances internal map
 java.lang.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(java.lang.Object key)
          returns true if and only if this tabularData instance contains a compositeData value (i.e.
 boolean containsKey(java.lang.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(java.lang.Object value)
          Returns true if and only if this TabularData instance contains the specified value.
 java.util.Set entrySet()
          Returns a collection view of the index to row mappings contained in this TabularDataSupport instance.
 boolean equals(java.lang.Object obj)
          Compares the specified obj parameter with this TabularDataSupport instance for equality
 java.lang.Object get(java.lang.Object key)
          This method simply calls get((Object[]) key).
 CompositeData get(java.lang.Object[] key)
          This method validates the key Object[] parameter.
 TabularType getTabularType()
          get the TabularType that this instance contains
 int hashCode()
          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).
 boolean isEmpty()
           
 java.util.Set keySet()
          Returns a set view of the keys contained in the underlying map of this TabularDataSupport instance, and used to index the rows.
 void put(CompositeData value)
          Adds "value" to this TabularData instance, if value's composite type is the same as this instance's row type (ie the composite type returned by this.getTabularType().getRowType()), and if there is not already an existing value in this TabularData instance whose index is the same as the one calculated for the value to be added.
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
          This method simply calls put((CompositeData) value) and therefore ignores its key parameter which can be null
 void putAll(CompositeData[] values)
          Adds all the elements in values to this TabularData instance.
 void putAll(java.util.Map t)
          Add all the values contained in the specified map t to this TabularData instance.
 java.lang.Object remove(java.lang.Object key)
          This method simply calls remove((Object[]) key).
 CompositeData remove(java.lang.Object[] key)
          Method validates the key checking for null, zero length and if items in the key are invalid as returned by @see OpenType isValue(Object obj)
 int size()
           
 java.lang.String toString()
          The string representation consists of the name of this class (ie com.sun.jdmk.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())
 java.util.Collection values()
          Returns a collection view of the rows contained in this TabularDataSupport instance.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TabularDataSupport

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).

Parameters:
tabularType - the TabularTypeBackUP describing this TabularData instance, cannot be null

TabularDataSupport

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

Parameters:
tabularType - - the tabular type describing this instance, cannot be null;
initialCapacity - - the initial capacity of the Map
loadFactor - - the load factor of the Map
Throws:
java.lang.IllegalArgumentException - if the initialCapacity is less than zero, the load factor is negative or the tabularType is null
Method Detail

getTabularType

public TabularType getTabularType()
get the TabularType that this instance contains

Specified by:
getTabularType in interface TabularData
Returns:
TabularType describing this TabularData instance

calculateIndex

public java.lang.Object[] calculateIndex(CompositeData value)

Calculates the index that would be used in this TabularData instance to refer to the specified composite data value parameter is 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 tabular data instance

Specified by:
calculateIndex in interface TabularData
Parameters:
value - - the CompositeData 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.
Returns:
- the index that the specified value would have in this tabularData instance
Throws:
java.lang.NullPointerException - if value is null
InvalidOpenTypeException - if value does not conform to this tabular data instances' row type definition

containsKey

public boolean containsKey(java.lang.Object key)
returns true if and only if this tabularData instance contains a compositeData value (i.e. a row) whose index is the specified key. If key cannot be cast to a one dimension array of Object instances, this method returns false, otherwise it returns the result of the call this.containsKey((Object[]) key)

Specified by:
containsKey in interface java.util.Map
Parameters:
key - - the index value
Returns:
true if a CompositeData value is found false otherwise, false if key cannot be cast to an Object[]

containsKey

public boolean containsKey(java.lang.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.

Specified by:
containsKey in interface TabularData
Parameters:
key - the index value whose presence in this TabularData instance is to be tested
Returns:
true if it is found false otherwise

containsValue

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.

Specified by:
containsValue in interface TabularData
Parameters:
value - - the row value whose presence in this TabularData instance is to be tested
Returns:
true if this instance contains the specified value

containsValue

public boolean containsValue(java.lang.Object value)
Returns true if and only if this TabularData instance contains the specified value.

Specified by:
containsValue in interface java.util.Map
Parameters:
value - - the row value whose presence in this TabularData instance is to be tested
Returns:
true if this TabularData instance contains the specified row value

get

public java.lang.Object get(java.lang.Object key)
This method simply calls get((Object[]) key).

Specified by:
get in interface java.util.Map
Parameters:
key - - the key for which to lookup the value
Returns:
the Object found for key "key"

get

public CompositeData get(java.lang.Object[] key)
This method validates the key Object[] parameter. It cannot be null, or empty. It must be the same length as the indexNames of the tabularType passed into this instances constructor, and must be a valid value i.e the value returned by the method call OpenType isValue(Object obj) must be true

Specified by:
get in interface TabularData
Parameters:
key - - the Object[] key stored as a key in this instance
Returns:
- the CompositeData value corresponding to the key
Throws:
java.lang.NullPointerException - if key is null or empty
InvalidKeyException - if an item in the array returns false for call OpenType isValue(Object o)

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
This method simply calls put((CompositeData) value) and therefore ignores its key parameter which can be null

Specified by:
put in interface java.util.Map
Returns:
the value that is put
Throws:
java.lang.ClassCastException - if value is not an instanceof CompositeData

put

public void put(CompositeData value)
Adds "value" to this TabularData instance, if value's composite type is the same as this instance's row type (ie the composite type returned by this.getTabularType().getRowType()), and if there is not already 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 javax.management.openmbean.TabularType#getIndexNames() This method calls calculateIndex(CompositeData value) which validates value the returned Object[] is then converted into an unmodifiableList and stored

Specified by:
put in interface TabularData
Parameters:
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.
Throws:
java.lang.NullPointerException - if value is null
InvalidOpenTypeException - if value does not conform to this TabularData instance's row type definition
KeyAlreadyExistsException - if the underlying HashMap already contains the calculated key

remove

public java.lang.Object remove(java.lang.Object key)
This method simply calls remove((Object[]) key).

Specified by:
remove in interface java.util.Map
Parameters:
key - - the Object to remove note no checks are done if key can be cast to Object[] hence if not a ClassCastException will be thrown
Throws:
java.lang.ClassCastException - if key cannot be cast to an Object[]

remove

public CompositeData remove(java.lang.Object[] key)
Method validates the key checking for null, zero length and if items in the key are invalid as returned by @see OpenType isValue(Object obj)

Specified by:
remove in interface TabularData
Parameters:
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.
Returns:
previous value associated with specified key, or null if there was no mapping for key
Throws:
java.lang.NullPointerException - if key is null
InvalidKeyException - if the key does not conform to this TabularData instance's TabularType definition

putAll

public void putAll(java.util.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 calls 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.

Specified by:
putAll in interface java.util.Map
Parameters:
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
Throws:
java.lang.NullPointerException - - if a "value" in t is null
java.lang.ClassCastException - - if a value in t is not an instanceof CompositeData this is a wrapper around the RuntimeException ArrayStoreException which is generated when an attempt has been made to store the wrong type of object into an array of objects.
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.

putAll

public void putAll(CompositeData[] values)
Adds all the elements in values to this 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.

Specified by:
putAll in interface TabularData
Parameters:
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
Throws:
java.lang.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 index

clear

public void clear()
clears this instances internal map

Specified by:
clear in interface TabularData

size

public int size()
Specified by:
size in interface TabularData
Returns:
the size of the map

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface TabularData
Returns:
true if the map is empty false if not empty

keySet

public java.util.Set keySet()
Returns a set view of the keys contained in the underlying map of this TabularDataSupport instance, and used to index the rows. Each key contained in this set is an unmodifiable List. 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, removeAll, retainAll, and clear operations. It does not support the add or addAll operations

Specified by:
keySet in interface TabularData
Returns:
a set view of the keys used to index the rows of this TabularDataSupport instance

values

public java.util.Collection values()
Returns a collection view of the rows contained in this TabularDataSupport instance. 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, removeAll, retainAll, and clear operations. It does not support the add or addAll operations

Specified by:
values in interface TabularData
Returns:
a collection view of the values contained in this TabularDataSupport instance.

entrySet

public java.util.Set 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. The collection is backed by the underlying map of this TabularDataSupport instance, in so changes to the TabularDataSupport instance are reflected the collection, and vice-versa. The collection supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Collection.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.

NOTE Do not use the SetValue method of Map.Entry elements contained in the returned collection view. Doing so would corrupt the index to row mappings contained in this TabularDataSupport instance

Specified by:
entrySet in interface java.util.Map
Returns:
a collection view of the mappings contained in this map

clone

public java.lang.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!!

Returns:
a copy of the TabularDataSupport

equals

public boolean equals(java.lang.Object obj)
Compares the specified obj parameter with this TabularDataSupport instance for equality

Specified by:
equals in interface TabularData
Returns:
true if and only if all of the following statements are true:
  • their tabular types are equal

hashCode

public int hashCode()
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).

Specified by:
hashCode in interface TabularData
Returns:
the calculated hashCode for this object

toString

public java.lang.String toString()
The string representation consists of the name of this class (ie com.sun.jdmk.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())

Specified by:
toString in interface TabularData
Returns:
a string representation of this TabularDataSupport instance


Copyright © 2001-2002 MX4J Team. All Rights Reserved.