org.codehaus.groovy.runtime
Class MetaClassHelper
java.lang.Object
org.codehaus.groovy.runtime.MetaClassHelper
public class MetaClassHelper
- extends java.lang.Object
- Author:
- John Wilson, Jochen Theodorou
Method Summary |
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)
|
protected static java.lang.Class |
autoboxType(java.lang.Class type)
|
static long |
calculateParameterDistance(java.lang.Class[] arguments,
java.lang.Class[] parameters)
|
static java.lang.String |
capitalize(java.lang.String property)
|
static java.lang.Object |
chooseEmptyMethodParams(java.util.List methods)
|
static java.lang.Object |
chooseMostGeneralMethodWith1NullParam(java.util.List methods)
|
static java.lang.Object[] |
coerceArgumentsToClasses(java.lang.Object[] argumentArray,
java.lang.Class[] paramTypes)
|
protected static java.lang.Object |
coerceArray(java.lang.Object argument,
java.lang.Class param)
|
protected static java.lang.Object |
coerceGString(java.lang.Object argument,
java.lang.Class clazz)
Coerces a GString instance into String if needed |
protected static java.lang.Object |
coerceNumber(java.lang.Object argument,
java.lang.Class param)
|
static boolean |
containsMatchingMethod(java.util.List list,
MetaMethod method)
|
static java.lang.Class[] |
convertToTypeArray(java.lang.Object[] args)
param instance array to the type array |
static java.lang.Object |
createListenerProxy(java.lang.Class listenerType,
java.lang.String listenerMethodName,
Closure closure)
|
static java.lang.Object |
doConstructorInvoke(java.lang.reflect.Constructor constructor,
java.lang.Object[] argumentArray)
|
static java.lang.Object |
doMethodInvoke(java.lang.Object object,
MetaMethod method,
java.lang.Object[] argumentArray)
|
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 java.lang.Class[] |
getParameterTypes(java.lang.Object methodOrConstructor)
|
static boolean |
isAssignableFrom(java.lang.Class classToTransformTo,
java.lang.Class classToTransformFrom)
|
static boolean |
isGenericSetMethod(MetaMethod method)
|
protected static boolean |
isSuperclass(java.lang.Class claszz,
java.lang.Class superclass)
|
static boolean |
isValidMethod(java.lang.Class[] paramTypes,
java.lang.Class[] arguments,
boolean includeCoerce)
|
static boolean |
isValidMethod(java.lang.Object method,
java.lang.Class[] arguments,
boolean includeCoerce)
|
static boolean |
isVargsMethod(java.lang.Class[] paramTypes,
java.lang.Object[] arguments)
|
static void |
logMethodCall(java.lang.Object object,
java.lang.String methodName,
java.lang.Object[] arguments)
|
protected static java.lang.String |
normalizedValue(java.lang.Object argument)
|
static boolean |
parametersAreCompatible(java.lang.Class[] arguments,
java.lang.Class[] parameters)
|
protected static java.lang.String |
shortName(java.lang.Object object)
|
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 |
EMPTY_ARRAY
public static final java.lang.Object[] EMPTY_ARRAY
EMPTY_TYPE_ARRAY
public static java.lang.Class[] EMPTY_TYPE_ARRAY
ARRAY_WITH_NULL
protected static final java.lang.Object[] ARRAY_WITH_NULL
log
protected static final java.util.logging.Logger log
MetaClassHelper
public MetaClassHelper()
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
- parameterType
-
autoboxType
protected static java.lang.Class autoboxType(java.lang.Class type)
calculateParameterDistance
public static long calculateParameterDistance(java.lang.Class[] arguments,
java.lang.Class[] parameters)
capitalize
public static java.lang.String capitalize(java.lang.String property)
chooseEmptyMethodParams
public static java.lang.Object chooseEmptyMethodParams(java.util.List methods)
- Returns:
- the method with 1 parameter which takes the most general type of
object (e.g. Object)
chooseMostGeneralMethodWith1NullParam
public static java.lang.Object chooseMostGeneralMethodWith1NullParam(java.util.List methods)
- Returns:
- the method with 1 parameter which takes the most general type of
object (e.g. Object) ignoring primitve types
coerceGString
protected static java.lang.Object coerceGString(java.lang.Object argument,
java.lang.Class clazz)
- Coerces a GString instance into String if needed
- Returns:
- the coerced argument
coerceNumber
protected static java.lang.Object coerceNumber(java.lang.Object argument,
java.lang.Class param)
coerceArray
protected static java.lang.Object coerceArray(java.lang.Object argument,
java.lang.Class param)
containsMatchingMethod
public static boolean containsMatchingMethod(java.util.List list,
MetaMethod method)
- 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
-
createListenerProxy
public static java.lang.Object createListenerProxy(java.lang.Class listenerType,
java.lang.String listenerMethodName,
Closure closure)
- Parameters:
listenerType
- the interface of the listener to proxylistenerMethodName
- the name of the method in the listener API to call the
closure onclosure
- the closure to invoke on the listenerMethodName method
invocation
- Returns:
- a dynamic proxy which calls the given closure on the given
method name
doConstructorInvoke
public static java.lang.Object doConstructorInvoke(java.lang.reflect.Constructor constructor,
java.lang.Object[] argumentArray)
coerceArgumentsToClasses
public static java.lang.Object[] coerceArgumentsToClasses(java.lang.Object[] argumentArray,
java.lang.Class[] paramTypes)
doMethodInvoke
public static java.lang.Object doMethodInvoke(java.lang.Object object,
MetaMethod method,
java.lang.Object[] argumentArray)
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.
getParameterTypes
public static java.lang.Class[] getParameterTypes(java.lang.Object methodOrConstructor)
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 claszz,
java.lang.Class superclass)
isValidMethod
public static boolean isValidMethod(java.lang.Class[] paramTypes,
java.lang.Class[] arguments,
boolean includeCoerce)
isValidMethod
public static boolean isValidMethod(java.lang.Object method,
java.lang.Class[] arguments,
boolean includeCoerce)
isVargsMethod
public static boolean isVargsMethod(java.lang.Class[] paramTypes,
java.lang.Object[] arguments)
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)
parametersAreCompatible
public static boolean parametersAreCompatible(java.lang.Class[] arguments,
java.lang.Class[] parameters)
shortName
protected static java.lang.String shortName(java.lang.Object object)
wrap
public static java.lang.Class[] wrap(java.lang.Class[] classes)
Copyright © 2003-2011 The Codehaus. All Rights Reserved.