javax.management.openmbean

Class CompositeType

public class CompositeType extends OpenType<CompositeData>

The open type descriptor for instances of the {@link CompositeData} class.

Since: 1.5

Constructor Summary
CompositeType(String name, String desc, String[] names, String[] descs, OpenType<?>[] types)

Constructs a new {@link CompositeType} instance for the given type name with the specified field names, descriptions and types.

Method Summary
booleancontainsKey(String name)
Returns true if this composite data type has a field with the given name.
booleanequals(Object obj)

Compares this composite data type with another object for equality.

StringgetDescription(String name)
Returns the description for the given field name, or null if the field name does not exist within this composite data type.
OpenType<?>getType(String name)
Returns the type for the given field name, or null if the field name does not exist within this composite data type.
inthashCode()

Returns the hash code of the composite data type.

booleanisValue(Object obj)
Returns true if the specified object is a member of this composite type.
Set<String>keySet()
Returns an unmodifiable {@link java.util.Set}-based view of the field names that form part of this {@link CompositeType} instance.
StringtoString()

Returns a textual representation of this instance.

Constructor Detail

CompositeType

public CompositeType(String name, String desc, String[] names, String[] descs, OpenType<?>[] types)

Constructs a new {@link CompositeType} instance for the given type name with the specified field names, descriptions and types. All parameters, and the elements of the array parameters, must be non-null and {@link java.lang.String} values must be something other than the empty string. The arrays must be non-empty, and be of equal size.

The result of CompositeData.class.getName() is adopted as the class name (see {@link OpenType}) and changes to the array elements following construction of the {@link CompositeType} instance will not affect the values used by the instance. The field names are sorted in to ascending alphanumeric order internally, and so ordering can not be used to differentiate between two instances.

Parameters: name the name of this composite type. desc a description of this composite type. names the names of each field within the composite type. descs the descriptions of each field within the composite type. types the types of each field within the composite type.

Throws: IllegalArgumentException if any validity constraint listed above is broken. OpenDataException if duplicate item names are provided. Item names are case-sensitive, but whitespace is removed before comparison.

Method Detail

containsKey

public boolean containsKey(String name)
Returns true if this composite data type has a field with the given name.

Parameters: name the name of the field to check for.

Returns: true if a field of that name exists.

equals

public boolean equals(Object obj)

Compares this composite data type with another object for equality. The objects are judged to be equal if:

Parameters: obj the object to compare with.

Returns: true if the conditions above hold.

getDescription

public String getDescription(String name)
Returns the description for the given field name, or null if the field name does not exist within this composite data type.

Parameters: name the name of the field whose description should be returned.

Returns: the description, or null if the field doesn't exist.

getType

public OpenType<?> getType(String name)
Returns the type for the given field name, or null if the field name does not exist within this composite data type.

Parameters: name the name of the field whose type should be returned.

Returns: the type, or null if the field doesn't exist.

hashCode

public int hashCode()

Returns the hash code of the composite data type. This is computed as the sum of the hash codes of each field name and its type, together with the hash code of the type name. These are the same elements of the type that are compared as part of the {@link #equals(java.lang.Object)} method, thus ensuring that the hashcode is compatible with the equality test.

As instances of this class are immutable, the hash code is computed just once for each instance and reused throughout its life.

Returns: the hash code of this instance.

isValue

public boolean isValue(Object obj)
Returns true if the specified object is a member of this composite type. The object is judged to be so if it is an instance of {@link CompositeData} with an equivalent type, according to the definition of {@link #equals(java.lang.Object)} for {@link CompositeType}.

Parameters: obj the object to test for membership.

Returns: true if the object is a member of this type.

keySet

public Set<String> keySet()
Returns an unmodifiable {@link java.util.Set}-based view of the field names that form part of this {@link CompositeType} instance. The names are stored in ascending alphanumeric order.

Returns: a unmodifiable set containing the field name {@link java.lang.String}s.

toString

public String toString()

Returns a textual representation of this instance. This is constructed using the class name (javax.management.openmbean.CompositeType) and each element of the instance which is relevant to the definition of {@link equals(java.lang.Object)} and {@link hashCode()} (i.e. the type name, and the name and type of each field).

As instances of this class are immutable, the return value is computed just once for each instance and reused throughout its life.

Returns: a @link{java.lang.String} instance representing the instance in textual form.