Class MetaClassHelper

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

public class MetaClassHelper extends Object
  • 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.
    • 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)
    • 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