# Class ModelMBeanAttributeInfo

java.lang.Object
javax.management.MBeanFeatureInfo
javax.management.MBeanAttributeInfo
javax.management.modelmbean.ModelMBeanAttributeInfo

All Implemented Interfaces:
  `Serializable, Cloneable, DescriptorAccess, DescriptorRead`

public class ModelMBeanAttributeInfo extends MBeanAttributeInfo implements DescriptorAccess

The ModelMBeanAttributeInfo object describes an attribute of the ModelMBean. It is a subclass of MBeanAttributeInfo with the addition of an associated Descriptor and an implementation of the DescriptorAccess interface.

The fields in the descriptor are defined, but not limited to, the following. Note that when the Type in this table is Number, a String that is the decimal representation of a Long can also be used.

ModelMBeanAttributeInfo Fields
Name | Type | Meaning
--- | --- | ---
name | String | Attribute name.
descriptorType | String | Must be "attribute".
value | Object | Current (cached) value for attribute.
default | Object | Default value for attribute.
displayName | String | Name of attribute to be used in displays.
getMethod | String | Name of operation descriptor for get method.
setMethod | String | Name of operation descriptor for set method.
protocolMap | Descriptor | See the section "Protocol Map Support" in the JMX specification document. Mappings must be appropriate for the attribute and entries can be updated or augmented at runtime.
persistPolicy | String | One of: OnUpdate|OnTimer|NoMoreOftenThan|OnUnregister|Always|Never. See the section "MBean Descriptor Fields" in the JMX specification document.
persistPeriod | Number | Frequency of persist cycle in seconds. Used when persistPolicy is "OnTimer" or "NoMoreOftenThan".
currencyTimeLimit | Number | How long value is valid: <0 never, =0 always, >0 seconds.
lastUpdatedTimeStamp | Number | When value was set.
visibility | Number | 1-4 where 1: always visible, 4: rarely visible.
presentationString | String | XML formatted string to allow presentation of data.

The default descriptor contains the name, descriptorType and displayName fields. The default value of the name and displayName fields is the name of the attribute.

Note: because of inconsistencies in previous versions of this specification, it is recommended not to use negative or zero values for `currencyTimeLimit`. To indicate that a cached value is never valid, omit the `currencyTimeLimit` field. To indicate that it is always valid, use a very large number for this field.

The serialVersionUID of this class is `6181543027787327345L`.

Since:
  1.5
See Also:
  - Serialized Form

- ## Field Summary

  ### Fields declared in class MBeanFeatureInfo

  `description, name`
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  The human-readable description of the feature.
  `protected String`
  `name`
  The name of the feature.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ModelMBeanAttributeInfo(String name, String description, Method getter, Method setter)`
  Constructs a ModelMBeanAttributeInfo object with a default descriptor.
  `ModelMBeanAttributeInfo(String name, String description, Method getter, Method setter, Descriptor descriptor)`
  Constructs a ModelMBeanAttributeInfo object.
  `ModelMBeanAttributeInfo(String name, String type, String description, boolean isReadable, boolean isWritable, boolean isIs)`
  Constructs a ModelMBeanAttributeInfo object with a default descriptor.
  `ModelMBeanAttributeInfo(String name, String type, String description, boolean isReadable, boolean isWritable, boolean isIs, Descriptor descriptor)`
  Constructs a ModelMBeanAttributeInfo object.
  `ModelMBeanAttributeInfo(ModelMBeanAttributeInfo inInfo)`
  Constructs a new ModelMBeanAttributeInfo object from this ModelMBeanAttributeInfo Object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  Creates and returns a new ModelMBeanAttributeInfo which is a duplicate of this ModelMBeanAttributeInfo.
  `Descriptor`
  `getDescriptor()`
  Gets a copy of the associated Descriptor for the ModelMBeanAttributeInfo.
  `void`
  `setDescriptor(Descriptor inDescriptor)`
  Sets associated Descriptor (full replace) for the ModelMBeanAttributeDescriptor.
  `String`
  `toString()`
  Returns a human-readable version of the ModelMBeanAttributeInfo instance.

  ### Methods declared in class MBeanAttributeInfo

  `equals, getType, isIs, isReadable, isWritable`
  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object o)`
  Compare this MBeanAttributeInfo to another.
  `String`
  `getType()`
  Returns the class name of the attribute.
  `boolean`
  `isIs()`
  Indicates if this attribute has an "is" getter.
  `boolean`
  `isReadable()`
  Whether the value of the attribute can be read.
  `boolean`
  `isWritable()`
  Whether new values can be written to the attribute.

  ### Methods declared in class MBeanFeatureInfo

  `getDescription, getName`
  Modifier and Type
  Method
  Description
  `String`
  `getDescription()`
  Returns the human-readable description of the feature.
  `String`
  `getName()`
  Returns the name of the feature.

  ### Methods declared in class Object

  `finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### ModelMBeanAttributeInfo

    public ModelMBeanAttributeInfo(String name, String description, Method getter, Method setter) throws IntrospectionException
    Constructs a ModelMBeanAttributeInfo object with a default descriptor. The `Descriptor` of the constructed object will include fields contributed by any annotations on the `Method` objects that contain the `DescriptorKey` meta-annotation.
    Parameters:
      `name` - The name of the attribute.
      `description` - A human readable description of the attribute. Optional.
      `getter` - The method used for reading the attribute value. May be null if the property is write-only.
      `setter` - The method used for writing the attribute value. May be null if the attribute is read-only.
    Throws:
      `IntrospectionException` - There is a consistency problem in the definition of this attribute.

  - ### ModelMBeanAttributeInfo

    public ModelMBeanAttributeInfo(String name, String description, Method getter, Method setter, Descriptor descriptor) throws IntrospectionException
    Constructs a ModelMBeanAttributeInfo object. The `Descriptor` of the constructed object will include fields contributed by any annotations on the `Method` objects that contain the `DescriptorKey` meta-annotation.
    Parameters:
      `name` - The name of the attribute.
      `description` - A human readable description of the attribute. Optional.
      `getter` - The method used for reading the attribute value. May be null if the property is write-only.
      `setter` - The method used for writing the attribute value. May be null if the attribute is read-only.
      `descriptor` - An instance of Descriptor containing the appropriate metadata for this instance of the Attribute. If it is null, then a default descriptor will be created. If the descriptor does not contain the field "displayName" this field is added in the descriptor with its default value.
    Throws:
      `IntrospectionException` - There is a consistency problem in the definition of this attribute.
      `RuntimeOperationsException` - Wraps an IllegalArgumentException. The descriptor is invalid, or descriptor field "name" is not equal to name parameter, or descriptor field "descriptorType" is not equal to "attribute".

  - ### ModelMBeanAttributeInfo

    public ModelMBeanAttributeInfo(String name, String type, String description, boolean isReadable, boolean isWritable, boolean isIs)
    Constructs a ModelMBeanAttributeInfo object with a default descriptor.
    Parameters:
      `name` - The name of the attribute
      `type` - The type or class name of the attribute
      `description` - A human readable description of the attribute.
      `isReadable` - True if the attribute has a getter method, false otherwise.
      `isWritable` - True if the attribute has a setter method, false otherwise.
      `isIs` - True if the attribute has an "is" getter, false otherwise.

  - ### ModelMBeanAttributeInfo

    public ModelMBeanAttributeInfo(String name, String type, String description, boolean isReadable, boolean isWritable, boolean isIs, Descriptor descriptor)
    Constructs a ModelMBeanAttributeInfo object.
    Parameters:
      `name` - The name of the attribute
      `type` - The type or class name of the attribute
      `description` - A human readable description of the attribute.
      `isReadable` - True if the attribute has a getter method, false otherwise.
      `isWritable` - True if the attribute has a setter method, false otherwise.
      `isIs` - True if the attribute has an "is" getter, false otherwise.
      `descriptor` - An instance of Descriptor containing the appropriate metadata for this instance of the Attribute. If it is null then a default descriptor will be created. If the descriptor does not contain the field "displayName" this field is added in the descriptor with its default value.
    Throws:
      `RuntimeOperationsException` - Wraps an IllegalArgumentException. The descriptor is invalid, or descriptor field "name" is not equal to name parameter, or descriptor field "descriptorType" is not equal to "attribute".

  - ### ModelMBeanAttributeInfo

    public ModelMBeanAttributeInfo(ModelMBeanAttributeInfo inInfo)
    Constructs a new ModelMBeanAttributeInfo object from this ModelMBeanAttributeInfo Object. A default descriptor will be created.
    Parameters:
      `inInfo` - the ModelMBeanAttributeInfo to be duplicated

- ## Method Details

  - ### getDescriptor

    public Descriptor getDescriptor()
    Gets a copy of the associated Descriptor for the ModelMBeanAttributeInfo.
    Specified by:
      `getDescriptor` in interface `DescriptorRead`
    Overrides:
      `getDescriptor` in class `MBeanFeatureInfo`
    Returns:
      Descriptor associated with the ModelMBeanAttributeInfo object.
    See Also:
      - `setDescriptor(Descriptor)`

  - ### setDescriptor

    public void setDescriptor(Descriptor inDescriptor)
    Sets associated Descriptor (full replace) for the ModelMBeanAttributeDescriptor. If the new Descriptor is null, then the associated Descriptor reverts to a default descriptor. The Descriptor is validated before it is assigned. If the new Descriptor is invalid, then a RuntimeOperationsException wrapping an IllegalArgumentException is thrown.
    Specified by:
      `setDescriptor` in interface `DescriptorAccess`
    Parameters:
      `inDescriptor` - replaces the Descriptor associated with the ModelMBeanAttributeInfo
    Throws:
      `RuntimeOperationsException` - Wraps an IllegalArgumentException for an invalid Descriptor
    See Also:
      - `getDescriptor()`

  - ### clone

    public Object clone()
    Creates and returns a new ModelMBeanAttributeInfo which is a duplicate of this ModelMBeanAttributeInfo.
    Overrides:
      `clone` in class `MBeanAttributeInfo`
    Returns:
      a clone of this instance.
    Throws:
      `RuntimeOperationsException` - for illegal value for field Names or field Values. If the descriptor construction fails for any reason, this exception will be thrown.
    See Also:
      - `Cloneable`

  - ### toString

    public String toString()
    Returns a human-readable version of the ModelMBeanAttributeInfo instance.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of the object