# Class ModelMBeanOperationInfo

java.lang.Object
javax.management.MBeanFeatureInfo
javax.management.MBeanOperationInfo
javax.management.modelmbean.ModelMBeanOperationInfo

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

public class ModelMBeanOperationInfo extends MBeanOperationInfo implements DescriptorAccess

The ModelMBeanOperationInfo object describes a management operation of the ModelMBean. It is a subclass of MBeanOperationInfo 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.

ModelMBeanOperationInfo Fields
Name | Type | Meaning
--- | --- | ---
name | String | Operation name.
descriptorType | String | Must be "operation".
class | String | Class where method is defined (fully qualified).
role | String | Must be "operation", "getter", or "setter".
targetObject | Object | Object on which to execute this method.
targetType | String | type of object reference for targetObject. Can be: ObjectReference | Handle | EJBHandle | IOR | RMIReference.
value | Object | Cached value for operation.
displayName | String | Human readable display name of the operation.
currencyTimeLimit | Number | How long cached value is valid.
lastUpdatedTimeStamp | Number | When cached value was set.
visibility | Number | 1-4 where 1: always visible 4: rarely visible.
presentationString | String | XML formatted string to describe how to present operation

The default descriptor will have name, descriptorType, displayName and role fields set. The default value of the name and displayName fields is the operation name.

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 `6532732096650090465L`.

Since:
  1.5
See Also:
  - Serialized Form

- ## Field Summary

  ### Fields declared in class MBeanOperationInfo

  `ACTION, ACTION_INFO, INFO, UNKNOWN`
  Modifier and Type
  Field
  Description
  `static final int`
  `ACTION`
  Indicates that the operation is write-like: it has an effect but does not return any information from the MBean.
  `static final int`
  `ACTION_INFO`
  Indicates that the operation is both read-like and write-like: it has an effect, and it also returns information from the MBean.
  `static final int`
  `INFO`
  Indicates that the operation is read-like: it returns information but does not change any state.
  `static final int`
  `UNKNOWN`
  Indicates that the impact of the operation is unknown or cannot be expressed using one of the other values.

  ### 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
  `ModelMBeanOperationInfo(String description, Method operationMethod)`
  Constructs a ModelMBeanOperationInfo object with a default descriptor.
  `ModelMBeanOperationInfo(String description, Method operationMethod, Descriptor descriptor)`
  Constructs a ModelMBeanOperationInfo object.
  `ModelMBeanOperationInfo(String name, String description, MBeanParameterInfo[] signature, String type, int impact)`
  Constructs a ModelMBeanOperationInfo object with a default descriptor.
  `ModelMBeanOperationInfo(String name, String description, MBeanParameterInfo[] signature, String type, int impact, Descriptor descriptor)`
  Constructs a ModelMBeanOperationInfo object.
  `ModelMBeanOperationInfo(ModelMBeanOperationInfo inInfo)`
  Constructs a new ModelMBeanOperationInfo object from this ModelMBeanOperation Object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  Creates and returns a new ModelMBeanOperationInfo which is a duplicate of this ModelMBeanOperationInfo.
  `Descriptor`
  `getDescriptor()`
  Returns a copy of the associated Descriptor of the ModelMBeanOperationInfo.
  `void`
  `setDescriptor(Descriptor inDescriptor)`
  Sets associated Descriptor (full replace) for the ModelMBeanOperationInfo If the new Descriptor is null, then the associated Descriptor reverts to a default descriptor.
  `String`
  `toString()`
  Returns a string containing the entire contents of the ModelMBeanOperationInfo in human readable form.

  ### Methods declared in class MBeanOperationInfo

  `equals, getImpact, getReturnType, getSignature`
  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object o)`
  Compare this MBeanOperationInfo to another.
  `int`
  `getImpact()`
  Returns the impact of the method, one of `INFO, ACTION, ACTION_INFO, UNKNOWN`.
  `String`
  `getReturnType()`
  Returns the type of the method's return value.
  `MBeanParameterInfo[]`
  `getSignature()`
  Returns the list of parameters for this operation.

  ### 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

  - ### ModelMBeanOperationInfo

    public ModelMBeanOperationInfo(String description, Method operationMethod)
    Constructs a ModelMBeanOperationInfo object with a default descriptor. The `Descriptor` of the constructed object will include fields contributed by any annotations on the `Method` object that contain the `DescriptorKey` meta-annotation.
    Parameters:
      `description` - A human readable description of the operation.
      `operationMethod` - The java.lang.reflect.Method object describing the MBean operation.

  - ### ModelMBeanOperationInfo

    public ModelMBeanOperationInfo(String description, Method operationMethod, Descriptor descriptor)
    Constructs a ModelMBeanOperationInfo object. The `Descriptor` of the constructed object will include fields contributed by any annotations on the `Method` object that contain the `DescriptorKey` meta-annotation.
    Parameters:
      `description` - A human readable description of the operation.
      `operationMethod` - The java.lang.reflect.Method object describing the MBean operation.
      `descriptor` - An instance of Descriptor containing the appropriate metadata for this instance of the ModelMBeanOperationInfo. If it is null a default descriptor will be created. If the descriptor does not contain the fields "displayName" or "role", the missing ones are added with their default values.
    Throws:
      `RuntimeOperationsException` - Wraps an IllegalArgumentException. The descriptor is invalid; or descriptor field "name" is not equal to operation name; or descriptor field "DescriptorType" is not equal to "operation"; or descriptor optional field "role" is present but not equal to "operation", "getter", or "setter".

  - ### ModelMBeanOperationInfo

    public ModelMBeanOperationInfo(String name, String description, MBeanParameterInfo[] signature, String type, int impact)
    Constructs a ModelMBeanOperationInfo object with a default descriptor.
    Parameters:
      `name` - The name of the method.
      `description` - A human readable description of the operation.
      `signature` - MBeanParameterInfo objects describing the parameters(arguments) of the method.
      `type` - The type of the method's return value.
      `impact` - The impact of the method, one of INFO, ACTION, ACTION_INFO, UNKNOWN.

  - ### ModelMBeanOperationInfo

    public ModelMBeanOperationInfo(String name, String description, MBeanParameterInfo[] signature, String type, int impact, Descriptor descriptor)
    Constructs a ModelMBeanOperationInfo object.
    Parameters:
      `name` - The name of the method.
      `description` - A human readable description of the operation.
      `signature` - MBeanParameterInfo objects describing the parameters(arguments) of the method.
      `type` - The type of the method's return value.
      `impact` - The impact of the method, one of INFO, ACTION, ACTION_INFO, UNKNOWN.
      `descriptor` - An instance of Descriptor containing the appropriate metadata for this instance of the MBeanOperationInfo. If it is null then a default descriptor will be created. If the descriptor does not contain fields "displayName" or "role", the missing ones are added with their default values.
    Throws:
      `RuntimeOperationsException` - Wraps an IllegalArgumentException. The descriptor is invalid; or descriptor field "name" is not equal to operation name; or descriptor field "DescriptorType" is not equal to "operation"; or descriptor optional field "role" is present but not equal to "operation", "getter", or "setter".

  - ### ModelMBeanOperationInfo

    public ModelMBeanOperationInfo(ModelMBeanOperationInfo inInfo)
    Constructs a new ModelMBeanOperationInfo object from this ModelMBeanOperation Object.
    Parameters:
      `inInfo` - the ModelMBeanOperationInfo to be duplicated

- ## Method Details

  - ### clone

    public Object clone()
    Creates and returns a new ModelMBeanOperationInfo which is a duplicate of this ModelMBeanOperationInfo.
    Overrides:
      `clone` in class `MBeanOperationInfo`
    Returns:
      a clone of this instance.
    See Also:
      - `Cloneable`

  - ### getDescriptor

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

  - ### setDescriptor

    public void setDescriptor(Descriptor inDescriptor)
    Sets associated Descriptor (full replace) for the ModelMBeanOperationInfo 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 ModelMBeanOperation.
    Throws:
      `RuntimeOperationsException` - Wraps an IllegalArgumentException for invalid Descriptor.
    See Also:
      - `getDescriptor()`

  - ### toString

    public String toString()
    Returns a string containing the entire contents of the ModelMBeanOperationInfo in human readable form.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of the object