Module java.management
Package javax.management.openmbean

## 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 javax.management.MBeanOperationInfo

      `ACTION, ACTION_INFO, INFO, UNKNOWN`

    - ### Fields declared in class javax.management.MBeanFeatureInfo

      `description, name`

  - ### 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 javax.management.MBeanOperationInfo

      `clone, getImpact, getReturnType, getSignature`

    - ### Methods declared in class javax.management.MBeanFeatureInfo

      `getDescription, getDescriptor, getName`

    - ### Methods declared in class java.lang.Object

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods declared in interface javax.management.openmbean.OpenMBeanOperationInfo

      `getDescription, getImpact, getName, getReturnType, getSignature`

- - ### Constructor Detail

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

    - #### 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(java.lang.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