org.codehaus.groovy.runtime

## Class MetaClassHelper

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

-     public class MetaClassHelper
      extends Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static Object[]` | `ARRAY_WITH_NULL`
    `static Object[]` | `EMPTY_ARRAY`
    `static Class[]` | `EMPTY_CLASS_ARRAY`
    `static Class[]` | `EMPTY_TYPE_ARRAY`
    `protected static Logger` | `LOG`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MetaClassHelper()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | `accessibleToConstructor(Class at, Constructor constructor)`
    `static Object` | `asPrimitiveArray(List list, Class parameterType)`
    `static Object[]` | `asWrapperArray(Object parameters, Class componentType)`
    `static long` | `calculateParameterDistance(Class[] arguments, ParameterTypes pt)`
    `static String` | `capitalize(String property)` Deprecated. Use BeanUtils.capitalize instead
    `static Class[]` | `castArgumentsToClassArray(Object[] argTypes)`
    `static Object` | `chooseEmptyMethodParams(FastArray methods)`
    `static Object` | `chooseMostGeneralMethodWith1NullParam(FastArray methods)` Deprecated.
    `static boolean` | `containsMatchingMethod(List list, MetaMethod method)`
    `static String` | `convertPropertyName(String prop)` Converts a String into a standard property name.
    `static Class[]` | `convertToTypeArray(Object[] args)` param instance array to the type array
    `static GroovyRuntimeException` | `createExceptionText(String init, MetaMethod method, Object object, Object[] args, Throwable reason, boolean setReason)`
    `static void` | `doSetMetaClass(Object self, MetaClass mc)` Sets the meta class for an object, by delegating to the appropriate `DefaultGroovyMethods` helper method.
    `protected static String` | `getClassName(Object object)`
    `static Closure` | `getMethodPointer(Object object, String methodName)` Returns a callable object for the given method name on the object.
    `static boolean` | `isAssignableFrom(Class classToTransformTo, Class classToTransformFrom)`
    `static boolean` | `isGenericSetMethod(MetaMethod method)`
    `protected static boolean` | `isSuperclass(Class clazz, Class superclass)`
    `static void` | `logMethodCall(Object object, String methodName, Object[] arguments)`
    `static Object` | `makeArray(Object obj, Class secondary, int length)`
    `static Object` | `makeCommonArray(Object[] arguments, int offset, Class fallback)`
    `protected static String` | `normalizedValue(Object argument)`
    `static boolean` | `parametersAreCompatible(Class[] arguments, Class[] parameters)`
    `static boolean` | `sameClass(Class[] params, Object arg)`
    `static boolean` | `sameClasses(Class[] params)`
    `static boolean` | `sameClasses(Class[] params, Object arg1)`
    `static boolean` | `sameClasses(Class[] params, Object[] arguments)`
    `static boolean` | `sameClasses(Class[] params, Object[] arguments, boolean weakNullCheck)`
    `static boolean` | `sameClasses(Class[] params, Object arg1, Object arg2)`
    `static boolean` | `sameClasses(Class[] params, Object arg1, Object arg2, Object arg3)`
    `static boolean` | `sameClasses(Class[] params, Object arg1, Object arg2, Object arg3, Object arg4)`
    `protected static String` | `shortName(Object object)`
    `static void` | `unwrap(Object[] arguments)`
    `static Class[]` | `wrap(Class[] classes)`

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

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

- - ### Field Detail

    - #### EMPTY_ARRAY

          public static final Object[] EMPTY_ARRAY

    - #### EMPTY_TYPE_ARRAY

          public static final Class[] EMPTY_TYPE_ARRAY

    - #### ARRAY_WITH_NULL

          public static final Object[] ARRAY_WITH_NULL

    - #### LOG

          protected static final Logger LOG

    - #### EMPTY_CLASS_ARRAY

          public static final Class[] EMPTY_CLASS_ARRAY

  - ### Constructor Detail

    - #### MetaClassHelper

          public MetaClassHelper()

  - ### Method Detail

    - #### accessibleToConstructor

          public static boolean accessibleToConstructor(Class at,
                                                        Constructor constructor)

    - #### asWrapperArray

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

    - #### asPrimitiveArray

          public static Object asPrimitiveArray(List list,
                                                Class parameterType)

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

    - #### calculateParameterDistance

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

    - #### capitalize

          @Deprecated
          public static String capitalize(String property)

      Deprecated. Use BeanUtils.capitalize instead

    - #### chooseEmptyMethodParams

          public static Object chooseEmptyMethodParams(FastArray methods)

      Parameters:
        `methods` - the methods to choose from
      Returns:
        the method with 1 parameter which takes the most general type of object (e.g. Object)

    - #### chooseMostGeneralMethodWith1NullParam

          @Deprecated
          public static Object chooseMostGeneralMethodWith1NullParam(FastArray methods)

      Deprecated.
      Warning: this method does not choose properly if multiple methods with the same distance are encountered
      Parameters:
        `methods` - the methods to choose from
      Returns:
        the method with 1 parameter which takes the most general type of object (e.g. Object) ignoring primitive types

    - #### containsMatchingMethod

          public static boolean containsMatchingMethod(List list,
                                                       MetaMethod method)

      Parameters:
        `list` - a list of MetaMethods
        `method` - the MetaMethod of interest
      Returns:
        true if a method of the same matching prototype was found in the list

    - #### convertToTypeArray

          public static Class[] convertToTypeArray(Object[] args)

      param instance array to the type array
      Parameters:
        `args` - the arguments
      Returns:
        the types of the arguments

    - #### makeCommonArray

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

    - #### makeArray

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

    - #### createExceptionText

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

    - #### getClassName

          protected static String getClassName(Object object)

    - #### getMethodPointer

          public static Closure getMethodPointer(Object object,
                                                 String methodName)

      Returns a callable object for the given method name on the object. The object acts like a Closure in that it can be called, like a closure and passed around - though really its a method pointer, not a closure per se.
      Parameters:
        `object` - the object containing the method
        `methodName` - the method of interest
      Returns:
        the resulting closure-like method pointer

    - #### isAssignableFrom

          public static boolean isAssignableFrom(Class classToTransformTo,
                                                 Class classToTransformFrom)

    - #### isGenericSetMethod

          public static boolean isGenericSetMethod(MetaMethod method)

    - #### isSuperclass

          protected static boolean isSuperclass(Class clazz,
                                                Class superclass)

    - #### parametersAreCompatible

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

    - #### logMethodCall

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

    - #### normalizedValue

          protected static String normalizedValue(Object argument)

    - #### shortName

          protected static String shortName(Object object)

    - #### wrap

          public static Class[] wrap(Class[] classes)

    - #### sameClasses

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

    - #### sameClasses

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

    - #### sameClasses

          public static boolean sameClasses(Class[] params)

    - #### sameClasses

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

    - #### sameClasses

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

    - #### sameClasses

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

    - #### sameClasses

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

    - #### sameClass

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

    - #### castArgumentsToClassArray

          public static Class[] castArgumentsToClassArray(Object[] argTypes)

    - #### unwrap

          public static void unwrap(Object[] arguments)

    - #### doSetMetaClass

          public static void doSetMetaClass(Object self,
                                            MetaClass mc)

      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

    - #### convertPropertyName

          public static String convertPropertyName(String prop)

      Converts a String into a standard property name.
      Parameters:
        `prop` - the original name
      Returns:
        the converted name