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