Class MetaClassHelper

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

public class MetaClassHelper
extends java.lang.Object
  • Field Summary

    Fields
    Modifier and Type Field Description
    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 java.util.logging.Logger LOG  
  • Constructor Summary

    Constructors
    Constructor Description
    MetaClassHelper()  
  • Method Summary

    Modifier and Type Method Description
    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)  
    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)
    Deprecated.
    Use BeanUtils.capitalize instead
    static java.lang.Class[] castArgumentsToClassArray​(java.lang.Object[] argTypes)  
    static java.lang.Object chooseEmptyMethodParams​(FastArray methods)  
    static java.lang.Object chooseMostGeneralMethodWith1NullParam​(FastArray methods)
    Deprecated. 
    static boolean containsMatchingMethod​(java.util.List list, MetaMethod method)  
    static java.lang.String convertPropertyName​(java.lang.String prop)
    Converts a String into a standard property name.
    static java.lang.Class[] convertToTypeArray​(java.lang.Object[] args)
    param instance array to the type array
    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)
    Sets the meta class for an object, by delegating to the appropriate DefaultGroovyMethods helper method.
    protected static java.lang.String getClassName​(java.lang.Object object)  
    static Closure getMethodPointer​(java.lang.Object object, java.lang.String methodName)
    Returns a callable object for the given method name on the object.
    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)  
    static boolean sameClasses​(java.lang.Class[] params, java.lang.Object arg1)  
    static boolean sameClasses​(java.lang.Class[] params, java.lang.Object[] arguments)  
    static boolean sameClasses​(java.lang.Class[] params, java.lang.Object[] arguments, boolean weakNullCheck)  
    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)  
    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

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • EMPTY_ARRAY

      public static final java.lang.Object[] EMPTY_ARRAY
    • EMPTY_TYPE_ARRAY

      public static final java.lang.Class[] EMPTY_TYPE_ARRAY
    • ARRAY_WITH_NULL

      public static final java.lang.Object[] ARRAY_WITH_NULL
    • LOG

      protected static final java.util.logging.Logger LOG
    • EMPTY_CLASS_ARRAY

      public static final java.lang.Class[] EMPTY_CLASS_ARRAY
  • Constructor Details

    • MetaClassHelper

      public MetaClassHelper()
  • Method Details

    • accessibleToConstructor

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

      public static java.lang.Object[] asWrapperArray​(java.lang.Object parameters, java.lang.Class componentType)
    • 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
    • calculateParameterDistance

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

      @Deprecated public static java.lang.String capitalize​(java.lang.String property)
      Deprecated.
      Use BeanUtils.capitalize instead
    • chooseEmptyMethodParams

      public static java.lang.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 java.lang.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​(java.util.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 java.lang.Class[] convertToTypeArray​(java.lang.Object[] args)
      param instance array to the type array
      Parameters:
      args - the arguments
      Returns:
      the types of the arguments
    • makeCommonArray

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

      public static java.lang.Object makeArray​(java.lang.Object obj, java.lang.Class secondary, int length)
    • 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)
    • getClassName

      protected static java.lang.String getClassName​(java.lang.Object object)
    • getMethodPointer

      public static Closure getMethodPointer​(java.lang.Object object, java.lang.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​(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)
    • parametersAreCompatible

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

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

      protected static java.lang.String normalizedValue​(java.lang.Object argument)
    • shortName

      protected static java.lang.String shortName​(java.lang.Object object)
    • wrap

      public static java.lang.Class[] wrap​(java.lang.Class[] classes)
    • 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)
    • sameClass

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

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

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

      public static void doSetMetaClass​(java.lang.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 java.lang.String convertPropertyName​(java.lang.String prop)
      Converts a String into a standard property name.
      Parameters:
      prop - the original name
      Returns:
      the converted name