Package org.codehaus.groovy.runtime.metaclass

# Class NewInstanceMetaMethod

java.lang.Object
org.codehaus.groovy.reflection.ParameterTypes
groovy.lang.MetaMethod
org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod
org.codehaus.groovy.runtime.metaclass.NewMetaMethod
org.codehaus.groovy.runtime.metaclass.NewInstanceMetaMethod

All Implemented Interfaces:
  `MetaMember`, `Cloneable`

Direct Known Subclasses:
  `GroovyCategorySupport.CategoryMethod`

public class NewInstanceMetaMethod extends NewMetaMethod
A MetaMethod implementation where the underlying method is really a static helper method on some class but it appears to be an instance method on a class. This implementation is used to add new methods to the JDK writing them as normal static methods with the first parameter being the class on which the method is added.

- ## Field Summary

  ### Fields inherited from class org.codehaus.groovy.runtime.metaclass.NewMetaMethod

  `bytecodeParameterTypes, EMPTY_TYPE_ARRAY`

  ### Fields inherited from class org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod

  `method`

  ### Fields inherited from class groovy.lang.MetaMethod

  `EMPTY_ARRAY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `NewInstanceMetaMethod(CachedMethod method)`
  Constructs a new NewInstanceMetaMethod.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getModifiers()`
  Returns the modifiers for this method (PUBLIC without STATIC).
  `Object`
  `invoke(Object object, Object[] arguments)`
  Invokes the underlying static method with the object as the first argument.
  `boolean`
  `isStatic()`
  Indicates this method is not static (it appears as an instance method).

  ### Methods inherited from class org.codehaus.groovy.runtime.metaclass.NewMetaMethod

  `getBytecodeParameterTypes, getDeclaringClass, getOwnerClass`

  ### Methods inherited from class org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod

  `getCachedMethod, getName, getPT, getReturnType, toString`

  ### Methods inherited from class groovy.lang.MetaMethod

  `checkParameters, clone, doMethodInvoke, equal, equal, getDescriptor, getMopName, getSignature, isAbstract, isCacheable, isDefault, isMethod, isSame, processDoMethodInvokeException`

  ### Methods inherited from class org.codehaus.groovy.reflection.ParameterTypes

  `coerceArgumentsToClasses, correctArguments, getNativeParameterTypes, getParameterTypes, isValidExactMethod, isValidExactMethod, isValidMethod, isValidMethod, isVargsMethod, isVargsMethod, setParametersTypes`

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

  `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface groovy.lang.MetaMember

  `isFinal, isPackagePrivate, isPrivate, isProtected, isPublic, isSynthetic`

- ## Constructor Details

  - ### NewInstanceMetaMethod

    public NewInstanceMetaMethod(CachedMethod method)
    Constructs a new NewInstanceMetaMethod.
    Parameters:
      `method` - the cached static helper method

- ## Method Details

  - ### isStatic

    public boolean isStatic()
    Indicates this method is not static (it appears as an instance method).
    Returns:
      false, as this wraps a static method to appear as an instance method

  - ### getModifiers

    public int getModifiers()
    Returns the modifiers for this method (PUBLIC without STATIC).
    Specified by:
      `getModifiers` in interface `MetaMember`
    Overrides:
      `getModifiers` in class `ReflectionMetaMethod`
    Returns:
      PUBLIC modifier only

  - ### invoke

    public Object invoke(Object object, Object[] arguments)
    Invokes the underlying static method with the object as the first argument. This adapts instance method calls to the underlying static method signature.
    Overrides:
      `invoke` in class `ReflectionMetaMethod`
    Parameters:
      `object` - the object to invoke the method on (passed as first argument to static method)
      `arguments` - the method arguments
    Returns:
      the method return value