Class MetaClassHelper

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

public class MetaClassHelper extends Object
Author:
John Wilson, Jochen Theodorou
  • Field Details

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

      public static String capitalize(String property)
      This is the complement to the java.beans.Introspector.decapitalize(String) method. We handle names that begin with an initial lowerCase followed by upperCase specially (which is to make no change). See GROOVY-3211.
      Parameters:
      property - the property name to capitalize
      Returns:
      the name capitalized, except when we don't
    • 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

      public static Object chooseMostGeneralMethodWith1NullParam(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) 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)