Package org.codehaus.groovy.runtime
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 insteadstatic 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 arraystatic 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 appropriateDefaultGroovyMethods
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 listparameterType
- the resulting array type- Returns:
- the constructed array
-
calculateParameterDistance
-
capitalize
@Deprecated public static java.lang.String capitalize(java.lang.String property)Deprecated.Use BeanUtils.capitalize instead -
chooseEmptyMethodParams
- 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
- 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 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
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(java.lang.Class classToTransformTo, java.lang.Class classToTransformFrom) -
isGenericSetMethod
-
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
Sets the meta class for an object, by delegating to the appropriateDefaultGroovyMethods
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 classmc
- 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
-