org.codehaus.groovy.runtime
Class MetaClassHelper
java.lang.Object
  
org.codehaus.groovy.runtime.MetaClassHelper
public class MetaClassHelper
- extends Object
 
- Author:
 
  - John Wilson, Jochen Theodorou
 
 
 
| 
Method Summary | 
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)
 
          This is the complement to the java.beans.Introspector.decapitalize(String) method. | 
static Class[] | 
castArgumentsToClassArray(Object[] argTypes)
 
            | 
static Object | 
chooseEmptyMethodParams(FastArray methods)
 
            | 
static Object | 
chooseMostGeneralMethodWith1NullParam(FastArray methods)
 
            | 
static boolean | 
containsMatchingMethod(List list,
                       MetaMethod method)
 
            | 
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)
 
            | 
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 | 
 
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
MetaClassHelper
public MetaClassHelper()
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 listparameterType - 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 MetaMethodsmethod - 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 methodmethodName - 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)