# 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

  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 Object

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

- ## Constructor Details

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

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