Open MBeans refer exclusively to a limited, predefined set of data types, which can be combined into compound types.
All open MBean attributes, method return values, and method arguments must be limited to the set of open MBean data types listed in this section. This set is defined as: the wrapper objects that correspond to the Java primitive types (such as Integer, Long, Boolean), String, CompositeData, TabularData, and ObjectName.
In addition, any array of the open MBean data types may be used in open MBeans. A special class, javax.management.openmbean.ArrayType is used to represent the definition of single or multi-dimensional arrays in open MBeans.
The following list specifies all data types that are allowed as scalars or as any-dimensional arrays in open MBeans:
In addition the java.lang.Void type may be used, but only as the return type of an operation.
Open types are descriptor classes that describe the open MBean data types. To be able to manipulate the open MBean data types, management applications must be able to identify them. While primitive types are given by their wrapper class names, and arrays can be represented in a standard way, the complex data types need more structure than a flat string to represent their contents. Therefore open MBeans rely on description classes for all the open MBean data types, including special structures for describing complex data.
The abstract OpenType class is the superclass for the following specialized open type classes:
SimpleType, which describes the primitive types and the ObjectName class when they are not used in arrays
CompositeType, which describes composite data types
TabularType, which describes tabular data types
ArrayType, which describes any-dimensional arrays of any of the preceding types
The CompositeType, TabularType, and ArrayType classes are recursive, that is, they can contain instances of other open types.