org.codehaus.groovy.runtime
Class MetaClassHelper

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

public class MetaClassHelper
extends Object

Author:
John Wilson, Jochen Theodorou

Field Summary
static Object[] ARRAY_WITH_NULL
           
static Object[] EMPTY_ARRAY
           
static Class[] EMPTY_CLASS_ARRAY
           
static Class[] EMPTY_TYPE_ARRAY
           
protected static Logger LOG
           
 
Constructor Summary
MetaClassHelper()
           
 
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 claszz, 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
 

Field Detail

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 Detail

MetaClassHelper

public MetaClassHelper()
Method Detail

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 primitve 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 claszz,
                                      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)

Copyright © 2003-2010 The Codehaus. All rights reserved.