Package org.apache.cayenne.util

## Class Invocation

- java.lang.Object
- - org.apache.cayenne.util.Invocation

-     public class Invocation
      extends Object

  Invocation represents a dynamic method invocation bound to a specific target. The target is kept with a WeakReference and can therefore be reclaimed by the Garbage Collector.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Invocation​(Object target, String methodName)` | Constructor for an Invocation without arguments in the target's method.
    `Invocation​(Object target, String methodName, Class parameterType)` | Constructor for an Invocation with a single argument in the target's method.
    `Invocation​(Object target, String methodName, Class[] parameterTypes)` | Constructor for an Invocation with arbitrary arguments in the target's method.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object obj)` |
    `boolean` | `fire()` | Invoke the target's method without any arguments.
    `boolean` | `fire​(Object argument)` | Invoke the target's method with a single argument.
    `boolean` | `fire​(Object[] arguments)` | Invoke the target's method with an arbitrary number of arguments.
    `Method` | `getMethod()` |
    `Class[]` | `getParameterTypes()` |
    `Object` | `getTarget()` |
    `int` | `hashCode()` |

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Invocation

          public Invocation​(Object target,
                            String methodName)
                     throws NoSuchMethodException

      Constructor for an Invocation without arguments in the target's method.
      Throws:
        `NoSuchMethodException`
      See Also:
        `Invocation(Object, String, Class[])`

    - #### Invocation

          public Invocation​(Object target,
                            String methodName,
                            Class parameterType)
                     throws NoSuchMethodException

      Constructor for an Invocation with a single argument in the target's method.
      Throws:
        `NoSuchMethodException`
      See Also:
        `Invocation(Object, String, Class[])`

    - #### Invocation

          public Invocation​(Object target,
                            String methodName,
                            Class[] parameterTypes)
                     throws NoSuchMethodException

      Constructor for an Invocation with arbitrary arguments in the target's method.
      Parameters:
        `target` -
        `methodName` -
        `parameterTypes` -
      Throws:
        `NoSuchMethodException` - if `methodName` could not be found in the target
        `IllegalArgumentException` - if target or methodName are `null`, or parameterTypes is empty or contains `null` elements

  - ### Method Detail

    - #### fire

          public boolean fire()

      Invoke the target's method without any arguments.
      See Also:
        `fire(Object[])`

    - #### fire

          public boolean fire​(Object argument)

      Invoke the target's method with a single argument.
      Parameters:
        `argument` - an object passed to the target's method
      See Also:
        `fire(Object[])`

    - #### fire

          public boolean fire​(Object[] arguments)

      Invoke the target's method with an arbitrary number of arguments. The number of arguments must be consistent with the arguments given at construction time of this Invocation.
      Parameters:
        `arguments` - an array of objects passed to the target's method
      Returns:
        `true` if invocation of the method succeeded, otherwise `false`.
      Throws:
        `IllegalArgumentException` - if the passed arguments are inconsistent with the arguments passed to this instance's constructor
      See Also:
        `fire(Object[])`

    - #### equals

          public boolean equals​(Object obj)

      Overrides:
        `equals` in class `Object`
      See Also:
        `Object.equals(java.lang.Object)`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`
      See Also:
        `Object.hashCode()`

    - #### getMethod

          public Method getMethod()

      Returns:
        the method to be invoked on the target

    - #### getTarget

          public Object getTarget()

      Returns:
        the target object of this Invocation

    - #### getParameterTypes

          public Class[] getParameterTypes()

      Returns:
        an array of Classes describing the target method's parameters