OpenMBeanOperationInfoSupport (Java SE 26 & JDK 26)
Description: declaration: module: java.management, package: javax.management.openmbean, class: OpenMBeanOperationInfoSupport
Keywords: javax.management.openmbean.OpenMBeanOperationInfoSupport class

# Class OpenMBeanOperationInfoSupport

java.lang.Object
javax.management.MBeanFeatureInfo
javax.management.MBeanOperationInfo
javax.management.openmbean.OpenMBeanOperationInfoSupport

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

public class OpenMBeanOperationInfoSupport extends MBeanOperationInfo implements OpenMBeanOperationInfo
Describes an operation of an Open MBean.

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
  `OpenMBeanOperationInfoSupport(String name, String description, OpenMBeanParameterInfo[] signature, OpenType<?> returnOpenType, int impact)`
  Constructs an `OpenMBeanOperationInfoSupport` instance, which describes the operation of a class of open MBeans, with the specified `name`, `description`, `signature`, `returnOpenType` and `impact`.
  `OpenMBeanOperationInfoSupport(String name, String description, OpenMBeanParameterInfo[] signature, OpenType<?> returnOpenType, int impact, Descriptor descriptor)`
  Constructs an `OpenMBeanOperationInfoSupport` instance, which describes the operation of a class of open MBeans, with the specified `name`, `description`, `signature`, `returnOpenType`, `impact`, and `descriptor`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Compares the specified `obj` parameter with this `OpenMBeanOperationInfoSupport` instance for equality.
  `OpenType<?>`
  `getReturnOpenType()`
  Returns the open type of the values returned by the operation described by this `OpenMBeanOperationInfo` instance.
  `int`
  `hashCode()`
  Returns the hash code value for this `OpenMBeanOperationInfoSupport` instance.
  `String`
  `toString()`
  Returns a string representation of this `OpenMBeanOperationInfoSupport` instance.

  ### Methods declared in class MBeanOperationInfo

  `clone, getImpact, getReturnType, getSignature`
  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  Returns a shallow clone of this instance.
  `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, getDescriptor, getName`
  Modifier and Type
  Method
  Description
  `String`
  `getDescription()`
  Returns the human-readable description of the feature.
  `Descriptor`
  `getDescriptor()`
  Returns the descriptor for the feature.
  `String`
  `getName()`
  Returns the name of the feature.

  ### Methods declared in class Object

  `finalize, getClass, 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`.
  `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.

  ### Methods declared in interface OpenMBeanOperationInfo

  `getDescription, getImpact, getName, getReturnType, getSignature`
  Modifier and Type
  Method
  Description
  `String`
  `getDescription()`
  Returns a human readable description of the operation described by this `OpenMBeanOperationInfo` instance.
  `int`
  `getImpact()`
  Returns an `int` constant qualifying the impact of the operation described by this `OpenMBeanOperationInfo` instance.
  `String`
  `getName()`
  Returns the name of the operation described by this `OpenMBeanOperationInfo` instance.
  `String`
  `getReturnType()`
  Returns the fully qualified Java class name of the values returned by the operation described by this `OpenMBeanOperationInfo` instance.
  `MBeanParameterInfo[]`
  `getSignature()`
  Returns an array of `OpenMBeanParameterInfo` instances describing each parameter in the signature of the operation described by this `OpenMBeanOperationInfo` instance.

- ## Constructor Details

  - ### OpenMBeanOperationInfoSupport

    public OpenMBeanOperationInfoSupport(String name, String description, OpenMBeanParameterInfo[] signature, OpenType<?> returnOpenType, int impact)

    Constructs an `OpenMBeanOperationInfoSupport` instance, which describes the operation of a class of open MBeans, with the specified `name`, `description`, `signature`, `returnOpenType` and `impact`.

    The `signature` array parameter is internally copied, so that subsequent changes to the array referenced by `signature` have no effect on this instance.

    Parameters:
      `name` - cannot be a null or empty string.
      `description` - cannot be a null or empty string.
      `signature` - can be null or empty if there are no parameters to describe.
      `returnOpenType` - cannot be null: use `SimpleType.VOID` for operations that return nothing.
      `impact` - must be one of `ACTION`, `ACTION_INFO`, `INFO`, or `UNKNOWN`.
    Throws:
      `IllegalArgumentException` - if `name` or `description` are null or empty string, or `returnOpenType` is null, or `impact` is not one of `ACTION`, `ACTION_INFO`, `INFO`, or `UNKNOWN`.
      `ArrayStoreException` - If `signature` is not an array of instances of a subclass of `MBeanParameterInfo`.

  - ### OpenMBeanOperationInfoSupport

    public OpenMBeanOperationInfoSupport(String name, String description, OpenMBeanParameterInfo[] signature, OpenType<?> returnOpenType, int impact, Descriptor descriptor)

    Constructs an `OpenMBeanOperationInfoSupport` instance, which describes the operation of a class of open MBeans, with the specified `name`, `description`, `signature`, `returnOpenType`, `impact`, and `descriptor`.

    The `signature` array parameter is internally copied, so that subsequent changes to the array referenced by `signature` have no effect on this instance.

    Parameters:
      `name` - cannot be a null or empty string.
      `description` - cannot be a null or empty string.
      `signature` - can be null or empty if there are no parameters to describe.
      `returnOpenType` - cannot be null: use `SimpleType.VOID` for operations that return nothing.
      `impact` - must be one of `ACTION`, `ACTION_INFO`, `INFO`, or `UNKNOWN`.
      `descriptor` - The descriptor for the operation. This may be null, which is equivalent to an empty descriptor.
    Throws:
      `IllegalArgumentException` - if `name` or `description` are null or empty string, or `returnOpenType` is null, or `impact` is not one of `ACTION`, `ACTION_INFO`, `INFO`, or `UNKNOWN`.
      `ArrayStoreException` - If `signature` is not an array of instances of a subclass of `MBeanParameterInfo`.
    Since:
      1.6

- ## Method Details

  - ### getReturnOpenType

    public OpenType<?> getReturnOpenType()
    Returns the open type of the values returned by the operation described by this `OpenMBeanOperationInfo` instance.
    Specified by:
      `getReturnOpenType` in interface `OpenMBeanOperationInfo`
    Returns:
      the return type.

  - ### equals

    public boolean equals(Object obj)

    Compares the specified `obj` parameter with this `OpenMBeanOperationInfoSupport` instance for equality.

    Returns `true` if and only if all of the following statements are true:

    - `obj` is non null,
    - `obj` also implements the `OpenMBeanOperationInfo` interface,
    - their names are equal
    - their signatures are equal
    - their return open types are equal
    - their impacts are equal
    This ensures that this `equals` method works properly for `obj` parameters which are different implementations of the `OpenMBeanOperationInfo` interface.
    Specified by:
      `equals` in interface `OpenMBeanOperationInfo`
    Overrides:
      `equals` in class `MBeanOperationInfo`
    Parameters:
      `obj` - the object to be compared for equality with this `OpenMBeanOperationInfoSupport` instance;
    Returns:
      `true` if the specified object is equal to this `OpenMBeanOperationInfoSupport` instance.
    See Also:
      - `Object.hashCode()`
      - `HashMap`

  - ### hashCode

    public int hashCode()

    Returns the hash code value for this `OpenMBeanOperationInfoSupport` instance.

    The hash code of an `OpenMBeanOperationInfoSupport` instance is the sum of the hash codes of all elements of information used in `equals` comparisons (ie: its name, return open type, impact and signature, where the signature hashCode is calculated by a call to `java.util.Arrays.asList(this.getSignature).hashCode()`).

    This ensures that `t1.equals(t2)` implies that `t1.hashCode()==t2.hashCode()` for any two `OpenMBeanOperationInfoSupport` instances `t1` and `t2`, as required by the general contract of the method `Object.hashCode()`.

    However, note that another instance of a class implementing the `OpenMBeanOperationInfo` interface may be equal to this `OpenMBeanOperationInfoSupport` instance as defined by `equals(java.lang.Object)`, but may have a different hash code if it is calculated differently.

    As `OpenMBeanOperationInfoSupport` instances are immutable, the hash code for this instance is calculated once, on the first call to `hashCode`, and then the same value is returned for subsequent calls.

    Specified by:
      `hashCode` in interface `OpenMBeanOperationInfo`
    Overrides:
      `hashCode` in class `Object`
    Returns:
      the hash code value for this `OpenMBeanOperationInfoSupport` instance
    See Also:
      - `Object.equals(java.lang.Object)`
      - `System.identityHashCode(Object)`

  - ### toString

    public String toString()

    Returns a string representation of this `OpenMBeanOperationInfoSupport` instance.

    The string representation consists of the name of this class (ie `javax.management.openmbean.OpenMBeanOperationInfoSupport`), and the name, signature, return open type and impact of the described operation and the string representation of its descriptor.

    As `OpenMBeanOperationInfoSupport` instances are immutable, the string representation for this instance is calculated once, on the first call to `toString`, and then the same value is returned for subsequent calls.

    Specified by:
      `toString` in interface `OpenMBeanOperationInfo`
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of this `OpenMBeanOperationInfoSupport` instance