Package 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
  Description
  `static final Object[]`
  `ARRAY_WITH_NULL`
  `static final Object[]`
  `EMPTY_ARRAY`
  `static final Class[]`
  `EMPTY_CLASS_ARRAY`
  `static final Class[]`
  `EMPTY_TYPE_ARRAY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MetaClassHelper()`

- ## Method Summary

  Modifier and Type
  Method
  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, for removal: This API element is subject to removal in a future version.
  Use `BeanUtils.capitalize(java.lang.String)` instead
  `static Class[]`
  `castArgumentsToClassArray(Object[] arguments)`
  `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[] arguments)`
  Converts array of values (incl.
  `static GroovyRuntimeException`
  `createExceptionText(String init, MetaMethod method, Object object, Object[] args, Throwable reason, boolean setReason)`
  `static void`
  `doSetMetaClass(Object self, MetaClass mc)`
  Sets the metaclass 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)`
  `static Object`
  `normalizeBoxedReturn(Object value, Class<?> returnType)`
  Re-normalizes a reflectively boxed primitive return value through the `valueOf` caches.
  `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 Details

  - ### EMPTY_ARRAY

    public static final Object[] EMPTY_ARRAY

  - ### EMPTY_TYPE_ARRAY

    public static final Class[] EMPTY_TYPE_ARRAY

  - ### EMPTY_CLASS_ARRAY

    public static final Class[] EMPTY_CLASS_ARRAY

  - ### ARRAY_WITH_NULL

    public static final Object[] ARRAY_WITH_NULL

- ## Constructor Details

  - ### MetaClassHelper

    public MetaClassHelper()

- ## Method Details

  - ### 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(forRemoval=true, since="3.0.0") public static String capitalize(String property)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Use `BeanUtils.capitalize(java.lang.String)` 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[] arguments)
    Converts array of values (incl. `null`) to their respective types.
    Parameters:
      `arguments` - 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 it's 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[] arguments)
    Parameters:
      `arguments` - an array of classes, values, or nulls

  - ### unwrap

    public static void unwrap(Object[] arguments)

  - ### normalizeBoxedReturn

    public static Object normalizeBoxedReturn(Object value, Class<?> returnType)
    Re-normalizes a reflectively boxed primitive return value through the `valueOf` caches. `Method.invoke(java.lang.Object, java.lang.Object...)` boxes primitive returns with fresh instances, unlike MethodHandle-based and generated-bytecode invocation, which box through the caches; without normalization, reference identity (`===`) of primitive returns would differ between dispatch paths (GROOVY-12140).
    Parameters:
      `value` - the reflectively boxed return value (may be `null`)
      `returnType` - the declared return type of the invoked method
    Returns:
      the cache-normalized value
    Since:
      6.0.0

  - ### doSetMetaClass

    public static void doSetMetaClass(Object self, MetaClass mc)
    Sets the metaclass 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 misuses. Do not use this method directly unless you know what you do.
    Parameters:
      `self` - the object for which to set the metaclass
      `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