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

### Fields declared in class 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 MBeanOperationInfo

`clone, getImpact, getReturnType, getSignature`

### Methods declared in class MBeanFeatureInfo

`getDescription, getDescriptor, getName`

### Methods declared in class Object

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

### Methods declared in interface OpenMBeanOperationInfo

`getDescription, getImpact, getName, getReturnType, getSignature`

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