javax.management.openmbean

Class CompositeDataSupport

public class CompositeDataSupport extends Object implements CompositeData, Serializable

Provides an implementation of the {@link CompositeData} interface.

Since: 1.5

Constructor Summary
CompositeDataSupport(CompositeType type, Map<String,?> items)
Constructs a new {@link CompositeDataSupport} instance with the specified type using field names and values from the supplied map.
CompositeDataSupport(CompositeType type, String[] names, Object[] values)
Constructs a new {@link CompositeDataSupport} instance with the specified type using the supplied arrays of field names and values.
Method Summary
booleancontainsKey(String key)
Returns true if this {@link CompositeData} instance contains the specified key.
booleancontainsValue(Object value)
Returns true if this {@link CompositeData} instance has a value equal to that supplied.
booleanequals(Object obj)
Compares the specified object with this object for equality.
Objectget(String key)
Retrieves the value for the specified key.
Object[]getAll(String[] keys)
Returns the appropriate value for each key in the given array, using the same ordering.
CompositeTypegetCompositeType()
Returns the composite type which corresponds to this instance of {@link CompositeData}.
inthashCode()
Returns the hash code of this instance.
StringtoString()
Returns a textual representation of this instance.
Collection<?>values()
Returns a read-only collection of the values associated with this instance.

Constructor Detail

CompositeDataSupport

public CompositeDataSupport(CompositeType type, Map<String,?> items)
Constructs a new {@link CompositeDataSupport} instance with the specified type using field names and values from the supplied map. The keys of the map become the field names, while the values become the values of each respective field. This constructor simply calls the other constructor, with the two arrays formed using the keys and values of this map, respectively. Thus, the input parameters given should conform to the same requirements given there (i.e. no null values or empty strings).

Parameters: type the composite type of this composite data structure. items a mapping of field names to values. This should match the mappings given by the type (i.e. for each mapping in the type, there should be a corresponding field name with a value of the correct type).

Throws: IllegalArgumentException if the type, the map or any of the keys or values in the map are null, or if any key from the map is an empty string. OpenDataException if a mismatch occurs between the map and the field name/type specification given by the {@link CompositeType} instance. This may be due to the two having a different size, a mismatch between keys or an incorrectly typed value. ArrayStoreException if one of the keys is not a {@link java.lang.String} (thus calling a failure in converting the keys to an array of strings).

CompositeDataSupport

public CompositeDataSupport(CompositeType type, String[] names, Object[] values)
Constructs a new {@link CompositeDataSupport} instance with the specified type using the supplied arrays of field names and values. Neither the type, the two arrays or any elements of the arrays may be null. The {@link java.lang.String}s within the names array must be non-empty. The arrays must match in size and order, as each element of the names array is matched against the corresponding value in the values array. Internally, the two are stored in a map, lexographically ordered using the field names. The data given should also conform to the description of the instance given by the {@link CompositeType} instance supplied.

Parameters: type the composite type of this composite data structure. names the field names. values the corresponding values of the fields.

Throws: IllegalArgumentException if the type, the arrays or any of the keys or values in the arrays are null, or if any key from names is an empty string. This also occurs if the arrays differ in length. OpenDataException if a mismatch occurs between the arrays and the field name/type specification given by the {@link CompositeType} instance. This may be due to a differing number of field names, a mismatch between names or an incorrectly typed value.

Method Detail

containsKey

public boolean containsKey(String key)
Returns true if this {@link CompositeData} instance contains the specified key. This method always returns false for an input key equal to null or the empty string.

Parameters: key the key to find in the structure.

Returns: true if the key exists.

containsValue

public boolean containsValue(Object value)
Returns true if this {@link CompositeData} instance has a value equal to that supplied.

Parameters: value the value to look for.

Returns: true if the value exists.

equals

public boolean equals(Object obj)
Compares the specified object with this object for equality. The object is judged equivalent if it is non-null, and also an instance of {@link CompositeData} with the same name-value mappings and types. The two compared instances may be equivalent even if they represent different implementations of {@link CompositeData}.

Parameters: obj the object to compare for equality.

Returns: true if obj is equal to this.

get

public Object get(String key)
Retrieves the value for the specified key.

Parameters: key the key whose value should be returned.

Returns: the matching value.

Throws: IllegalArgumentException if the key is null or the empty string. InvalidKeyException if the key does not exist.

getAll

public Object[] getAll(String[] keys)
Returns the appropriate value for each key in the given array, using the same ordering.

Parameters: keys the keys whose values should be returned.

Returns: the matching values.

Throws: IllegalArgumentException if one of the keys is null or the empty string. InvalidKeyException if one of the keys does not exist.

getCompositeType

public CompositeType getCompositeType()
Returns the composite type which corresponds to this instance of {@link CompositeData}.

Returns: the composite type for this instance.

hashCode

public int hashCode()
Returns the hash code of this instance. The hash code is computed as the sum of the hash codes of all the values plus the hash code of the composite type. As equality comparisons take place using this same information, this should ensure that the property, e1.equals(e2) implies e1.hashCode() == e2.hashCode(), holds for any pair of instances, e1 and e2. However, this relies on the other instance implementing the hashCode method correctly, if it is not an instance of {@link CompositeDataSupport}.

Returns: the hash code of this {@link CompositeData}.

See Also: equals

toString

public String toString()
Returns a textual representation of this instance. The exact format is left up to the implementation, but it should contain the name of the implementing class, the name of the type and a mapping of the form key=value for each pair of key and value.

Returns: a {@link java.lang.String} representation of the object.

values

public Collection<?> values()
Returns a read-only collection of the values associated with this instance. The values are sorted using the lexicographic ordering of the corresponding keys.

Returns: the values of this instance.