Serializable
, CompositeData
public class CompositeDataSupport extends Object implements CompositeData, Serializable
CompositeDataSupport
class is the open data class which
implements the CompositeData
interface.Constructor | Description |
---|---|
CompositeDataSupport(CompositeType compositeType,
String[] itemNames,
Object[] itemValues) |
Constructs a
CompositeDataSupport instance with the specified
compositeType , whose item values
are specified by itemValues[] , in the same order as in
itemNames[] . |
CompositeDataSupport(CompositeType compositeType,
Map<String,?> items) |
Constructs a
CompositeDataSupport instance with the specified compositeType ,
whose item names and corresponding values
are given by the mappings in the map items . |
Modifier and Type | Method | Description |
---|---|---|
boolean |
containsKey(String key) |
Returns
true if and only if this CompositeData instance contains
an item whose name is key . |
boolean |
containsValue(Object value) |
Returns
true if and only if this CompositeData instance
contains an item
whose value is value . |
boolean |
equals(Object obj) |
Compares the specified obj parameter with this
CompositeDataSupport instance for equality. |
Object |
get(String key) |
Returns the value of the item whose name is
key . |
Object[] |
getAll(String[] keys) |
Returns an array of the values of the items whose names are specified by
keys , in the same order as keys . |
CompositeType |
getCompositeType() |
Returns the composite type of this composite data instance.
|
int |
hashCode() |
Returns the hash code value for this
CompositeDataSupport instance. |
String |
toString() |
Returns a string representation of this
CompositeDataSupport instance. |
Collection<?> |
values() |
Returns an unmodifiable Collection view of the item values contained in this
CompositeData instance. |
public CompositeDataSupport(CompositeType compositeType, String[] itemNames, Object[] itemValues) throws OpenDataException
Constructs a CompositeDataSupport
instance with the specified
compositeType
, whose item values
are specified by itemValues[]
, in the same order as in
itemNames[]
.
As a CompositeType
does not specify any order on its items,
the itemNames[]
parameter is used
to specify the order in which the values are given in itemValues[]
.
The items contained in this CompositeDataSupport
instance are
internally stored in a TreeMap
,
thus sorted in ascending lexicographic order of their names, for faster
retrieval of individual item values.
The constructor checks that all the constraints listed below for each parameter are satisfied, and throws the appropriate exception if they are not.
compositeType
- the composite type of this composite
data instance; must not be null.itemNames
- itemNames
must list, in any order, all the
item names defined in compositeType
; the order in which the
names are listed, is used to match values in itemValues[]
; must
not be null or empty.itemValues
- the values of the items, listed in the same order as
their respective names in itemNames
; each item value can be
null, but if it is non-null it must be a valid value for the open type
defined in compositeType
for the corresponding item; must be of
the same size as itemNames
; must not be null or empty.IllegalArgumentException
- compositeType
is null, or
itemNames[]
or itemValues[]
is null or empty, or one
of the elements in itemNames[]
is a null or empty string, or
itemNames[]
and itemValues[]
are not of the same size.OpenDataException
- itemNames[]
or
itemValues[]
's size differs from the number of items defined in
compositeType
, or one of the elements in itemNames[]
does not exist as an item name defined in compositeType
, or one
of the elements in itemValues[]
is not a valid value for the
corresponding item as defined in compositeType
.public CompositeDataSupport(CompositeType compositeType, Map<String,?> items) throws OpenDataException
Constructs a CompositeDataSupport
instance with the specified compositeType
,
whose item names and corresponding values
are given by the mappings in the map items
.
This constructor converts the keys to a string array and the values to an object array and calls
CompositeDataSupport(javax.management.openmbean.CompositeType, java.lang.String[], java.lang.Object[])
.
compositeType
- the composite type of this composite data instance;
must not be null.items
- the mappings of all the item names to their values;
items
must contain all the item names defined in compositeType
;
must not be null or empty.IllegalArgumentException
- compositeType
is null, or
items
is null or empty, or one of the keys in items
is a null
or empty string.OpenDataException
- items
' size differs from the
number of items defined in compositeType
, or one of the
keys in items
does not exist as an item name defined in
compositeType
, or one of the values in items
is not a valid value for the corresponding item as defined in
compositeType
.ArrayStoreException
- one or more keys in items
is not of
the class java.lang.String
.public CompositeType getCompositeType()
getCompositeType
in interface CompositeData
public Object get(String key)
key
.get
in interface CompositeData
key
- the name of the item.IllegalArgumentException
- if key
is a null or empty String.InvalidKeyException
- if key
is not an existing item name for
this CompositeData
instance.public Object[] getAll(String[] keys)
keys
, in the same order as keys
.getAll
in interface CompositeData
keys
- the names of the items.IllegalArgumentException
- if an element in keys
is a null
or empty String.InvalidKeyException
- if an element in keys
is not an existing
item name for this CompositeData
instance.public boolean containsKey(String key)
true
if and only if this CompositeData
instance contains
an item whose name is key
.
If key
is a null or empty String, this method simply returns false.containsKey
in interface CompositeData
key
- the key to be tested.CompositeData
contains the key.public boolean containsValue(Object value)
true
if and only if this CompositeData
instance
contains an item
whose value is value
.containsValue
in interface CompositeData
value
- the value to be tested.CompositeData
contains the value.public Collection<?> values()
CompositeData
instance.
The returned collection's iterator will return the values in the ascending
lexicographic order of the corresponding
item names.values
in interface CompositeData
public boolean equals(Object obj)
CompositeDataSupport
instance for equality.
Returns true
if and only if all of the following statements are true:
CompositeData
interface,deepEquals
method
for arrays of object reference types or the appropriate overloading of
Arrays.equals(e1,e2)
for arrays of primitive types
This ensures that this equals
method works properly for
obj parameters which are different implementations of the
CompositeData
interface, with the restrictions mentioned in the
equals
method of the java.util.Collection
interface.
equals
in interface CompositeData
equals
in class Object
obj
- the object to be compared for equality with this
CompositeDataSupport
instance.true
if the specified object is equal to this
CompositeDataSupport
instance.Object.hashCode()
,
HashMap
public int hashCode()
CompositeDataSupport
instance.
The hash code of a CompositeDataSupport
instance is the sum of the hash codes
of all elements of information used in equals
comparisons
(ie: its composite type and all the item values).
This ensures that t1.equals(t2)
implies that t1.hashCode()==t2.hashCode()
for any two CompositeDataSupport
instances t1
and t2
,
as required by the general contract of the method
Object.hashCode()
.
Each item value's hash code is added to the returned hash code.
If an item value is an array,
its hash code is obtained as if by calling the
deepHashCode
method
for arrays of object reference types or the appropriate overloading
of Arrays.hashCode(e)
for arrays of primitive types.
hashCode
in interface CompositeData
hashCode
in class Object
CompositeDataSupport
instanceObject.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String toString()
CompositeDataSupport
instance.
The string representation consists of the name of this class (ie javax.management.openmbean.CompositeDataSupport
),
the string representation of the composite type of this instance, and the string representation of the contents
(ie list the itemName=itemValue mappings).
toString
in interface CompositeData
toString
in class Object
CompositeDataSupport
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, 2017, Oracle and/or its affiliates. 500 Oracle Parkway
Redwood Shores, CA 94065 USA. All rights reserved.
DRAFT 9-internal+0-adhoc.mlchung.jdk9-jdeps