Groovy Documentation

## org.codehaus.groovy.runtime
[Java] Class MetaClassHelper

    java.lang.Object
      org.codehaus.groovy.runtime.MetaClassHelper

    public class MetaClassHelper
    extends java.lang.Object

Authors:
  John Wilson
  Jochen Theodorou

Field Summary
`static java.lang.Object[]` | `ARRAY_WITH_NULL`
`static java.lang.Object[]` | `EMPTY_ARRAY`
`static java.lang.Class[]` | `EMPTY_CLASS_ARRAY`
`static java.lang.Class[]` | `EMPTY_TYPE_ARRAY`
`protected static Logger` | `LOG`

Method Summary
`static boolean` | `accessibleToConstructor(java.lang.Class at, java.lang.reflect.Constructor constructor)`
`static java.lang.Object` | `asPrimitiveArray(java.util.List list, java.lang.Class parameterType)` @param list the original list
`static java.lang.Object[]` | `asWrapperArray(java.lang.Object parameters, java.lang.Class componentType)`
`static long` | `calculateParameterDistance(java.lang.Class[] arguments, ParameterTypes pt)`
`static java.lang.String` | `capitalize(java.lang.String property)` In general we want to match the signature that allows us to use as less arguments for the vargs part as possible.
`static java.lang.Class[]` | `castArgumentsToClassArray(java.lang.Object[] argTypes)`
`static java.lang.Object` | `chooseEmptyMethodParams(FastArray methods)`
`static java.lang.Object` | `chooseMostGeneralMethodWith1NullParam(FastArray methods)`
`static boolean` | `containsMatchingMethod(java.util.List list, MetaMethod method)`
`static java.lang.Class[]` | `convertToTypeArray(java.lang.Object[] args)`
`static GroovyRuntimeException` | `createExceptionText(java.lang.String init, MetaMethod method, java.lang.Object object, java.lang.Object[] args, java.lang.Throwable reason, boolean setReason)`
`static void` | `doSetMetaClass(java.lang.Object self, MetaClass mc)`
`protected static java.lang.String` | `getClassName(java.lang.Object object)`
`static Closure` | `getMethodPointer(java.lang.Object object, java.lang.String methodName)`
`static boolean` | `isAssignableFrom(java.lang.Class classToTransformTo, java.lang.Class classToTransformFrom)`
`static boolean` | `isGenericSetMethod(MetaMethod method)`
`protected static boolean` | `isSuperclass(java.lang.Class clazz, java.lang.Class superclass)`
`static void` | `logMethodCall(java.lang.Object object, java.lang.String methodName, java.lang.Object[] arguments)`
`static java.lang.Object` | `makeArray(java.lang.Object obj, java.lang.Class secondary, int length)`
`static java.lang.Object` | `makeCommonArray(java.lang.Object[] arguments, int offset, java.lang.Class fallback)`
`protected static java.lang.String` | `normalizedValue(java.lang.Object argument)`
`static boolean` | `parametersAreCompatible(java.lang.Class[] arguments, java.lang.Class[] parameters)`
`static boolean` | `sameClass(java.lang.Class[] params, java.lang.Object arg)`
`static boolean` | `sameClasses(java.lang.Class[] params, java.lang.Object[] arguments, boolean weakNullCheck)`
`static boolean` | `sameClasses(java.lang.Class[] params, java.lang.Object[] arguments)`
`static boolean` | `sameClasses(java.lang.Class[] params)`
`static boolean` | `sameClasses(java.lang.Class[] params, java.lang.Object arg1)`
`static boolean` | `sameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2)`
`static boolean` | `sameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)`
`static boolean` | `sameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)` Sets the meta class for an object, by delegating to the appropriate DefaultGroovyMethods helper method.
`protected static java.lang.String` | `shortName(java.lang.Object object)`
`static void` | `unwrap(java.lang.Object[] arguments)`
`static java.lang.Class[]` | `wrap(java.lang.Class[] classes)`

Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()

Field Detail

### ARRAY_WITH_NULL

    public static final java.lang.Object[] ARRAY_WITH_NULL

### EMPTY_ARRAY

    public static final java.lang.Object[] EMPTY_ARRAY

### EMPTY_CLASS_ARRAY

    public static final java.lang.Class[] EMPTY_CLASS_ARRAY

### EMPTY_TYPE_ARRAY

    public static final java.lang.Class[] EMPTY_TYPE_ARRAY

### LOG

    protected static final Logger LOG

Method Detail

### accessibleToConstructor

    public static boolean accessibleToConstructor(java.lang.Class at, java.lang.reflect.Constructor constructor)

### asPrimitiveArray

    public static java.lang.Object asPrimitiveArray(java.util.List list, java.lang.Class parameterType)

  Parameters:
    `list` - the original list
    `parameterType` - the resulting array type
  Returns:
    the constructed array

### asWrapperArray

    public static java.lang.Object[] asWrapperArray(java.lang.Object parameters, java.lang.Class componentType)

### calculateParameterDistance

    public static long calculateParameterDistance(java.lang.Class[] arguments, ParameterTypes pt)

### capitalize

    public static java.lang.String capitalize(java.lang.String property)

  In general we want to match the signature that allows us to use as less arguments for the vargs part as possible. That means the longer signature usually wins if both signatures are vargs, while vargs looses always against a signature without vargs. A vs B : def foo(Object[] a) {1} -> case B def foo(a,b,Object[] c) {2} -> case A assert foo(new Object(),new Object()) == 2 --> A preferred over B A vs C : def foo(Object[] a) {1} -> case B def foo(a,b) {2} -> case C assert foo(new Object(),new Object()) == 2 --> C preferred over A A vs D : def foo(Object[] a) {1} -> case D def foo(a,Object[] b) {2} -> case A assert foo(new Object()) == 2 --> A preferred over D This gives C<A<B,D B vs C : def foo(Object[] a) {1} -> case B def foo(a,b) {2} -> case C assert foo(new Object(),new Object()) == 2 --> C preferred over B, matches C<A<B,D B vs D : def foo(Object[] a) {1} -> case B def foo(a,Object[] b) {2} -> case D assert foo(new Object(),new Object()) == 2 --> D preferred over B This gives C<A<D<B

### castArgumentsToClassArray

    public static java.lang.Class[] castArgumentsToClassArray(java.lang.Object[] argTypes)

### chooseEmptyMethodParams

    public static java.lang.Object chooseEmptyMethodParams(FastArray methods)

### chooseMostGeneralMethodWith1NullParam

    public static java.lang.Object chooseMostGeneralMethodWith1NullParam(FastArray methods)

### containsMatchingMethod

    public static boolean containsMatchingMethod(java.util.List list, MetaMethod method)

### convertToTypeArray

    public static java.lang.Class[] convertToTypeArray(java.lang.Object[] args)

### createExceptionText

    public static GroovyRuntimeException createExceptionText(java.lang.String init, MetaMethod method, java.lang.Object object, java.lang.Object[] args, java.lang.Throwable reason, boolean setReason)

### doSetMetaClass

    public static void doSetMetaClass(java.lang.Object self, MetaClass mc)

### getClassName

    protected static java.lang.String getClassName(java.lang.Object object)

### getMethodPointer

    public static Closure getMethodPointer(java.lang.Object object, java.lang.String methodName)

### isAssignableFrom

    public static boolean isAssignableFrom(java.lang.Class classToTransformTo, java.lang.Class classToTransformFrom)

### isGenericSetMethod

    public static boolean isGenericSetMethod(MetaMethod method)

### isSuperclass

    protected static boolean isSuperclass(java.lang.Class clazz, java.lang.Class superclass)

### logMethodCall

    public static void logMethodCall(java.lang.Object object, java.lang.String methodName, java.lang.Object[] arguments)

### makeArray

    public static java.lang.Object makeArray(java.lang.Object obj, java.lang.Class secondary, int length)

### makeCommonArray

    public static java.lang.Object makeCommonArray(java.lang.Object[] arguments, int offset, java.lang.Class fallback)

### normalizedValue

    protected static java.lang.String normalizedValue(java.lang.Object argument)

### parametersAreCompatible

    public static boolean parametersAreCompatible(java.lang.Class[] arguments, java.lang.Class[] parameters)

### sameClass

    public static boolean sameClass(java.lang.Class[] params, java.lang.Object arg)

### sameClasses

    public static boolean sameClasses(java.lang.Class[] params, java.lang.Object[] arguments, boolean weakNullCheck)

### sameClasses

    public static boolean sameClasses(java.lang.Class[] params, java.lang.Object[] arguments)

### sameClasses

    public static boolean sameClasses(java.lang.Class[] params)

### sameClasses

    public static boolean sameClasses(java.lang.Class[] params, java.lang.Object arg1)

### sameClasses

    public static boolean sameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2)

### sameClasses

    public static boolean sameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)

### sameClasses

    public static boolean sameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)

  Sets the meta class for an object, by delegating to the appropriate DefaultGroovyMethods helper method. This method was introduced as a breaking change in 2.0 to solve rare cases of stack overflow. See GROOVY-5285. The method is named doSetMetaClass in order to prevent misusages. Do not use this method directly unless you know what you do.
  Parameters:
    `self` - the object for which to set the meta class
    `mc` - the metaclass

### shortName

    protected static java.lang.String shortName(java.lang.Object object)

### unwrap

    public static void unwrap(java.lang.Object[] arguments)

### wrap

    public static java.lang.Class[] wrap(java.lang.Class[] classes)

Groovy Documentation