Package org.codehaus.groovy.runtime
Class MetaClassHelper
- java.lang.Object
- 
- org.codehaus.groovy.runtime.MetaClassHelper
 
- 
 public class MetaClassHelper extends java.lang.Object
- 
- 
Field SummaryFields Modifier and Type Field Description static java.lang.Object[]ARRAY_WITH_NULLstatic java.lang.Object[]EMPTY_ARRAYstatic java.lang.Class[]EMPTY_CLASS_ARRAYstatic java.lang.Class[]EMPTY_TYPE_ARRAYprotected static java.util.logging.LoggerLOG
 - 
Constructor SummaryConstructors Constructor Description MetaClassHelper()
 - 
Method SummaryAll Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static booleanaccessibleToConstructor(java.lang.Class at, java.lang.reflect.Constructor constructor)static java.lang.ObjectasPrimitiveArray(java.util.List list, java.lang.Class parameterType)static java.lang.Object[]asWrapperArray(java.lang.Object parameters, java.lang.Class componentType)static longcalculateParameterDistance(java.lang.Class[] arguments, ParameterTypes pt)static java.lang.Stringcapitalize(java.lang.String property)This is the complement to the java.beans.Introspector.decapitalize(String) method.static java.lang.Class[]castArgumentsToClassArray(java.lang.Object[] argTypes)static java.lang.ObjectchooseEmptyMethodParams(FastArray methods)static java.lang.ObjectchooseMostGeneralMethodWith1NullParam(FastArray methods)Deprecated.static booleancontainsMatchingMethod(java.util.List list, MetaMethod method)static java.lang.StringconvertPropertyName(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 GroovyRuntimeExceptioncreateExceptionText(java.lang.String init, MetaMethod method, java.lang.Object object, java.lang.Object[] args, java.lang.Throwable reason, boolean setReason)static voiddoSetMetaClass(java.lang.Object self, MetaClass mc)Sets the meta class for an object, by delegating to the appropriateDefaultGroovyMethodshelper method.protected static java.lang.StringgetClassName(java.lang.Object object)static ClosuregetMethodPointer(java.lang.Object object, java.lang.String methodName)Returns a callable object for the given method name on the object.static booleanisAssignableFrom(java.lang.Class classToTransformTo, java.lang.Class classToTransformFrom)static booleanisGenericSetMethod(MetaMethod method)protected static booleanisSuperclass(java.lang.Class clazz, java.lang.Class superclass)static voidlogMethodCall(java.lang.Object object, java.lang.String methodName, java.lang.Object[] arguments)static java.lang.ObjectmakeArray(java.lang.Object obj, java.lang.Class secondary, int length)static java.lang.ObjectmakeCommonArray(java.lang.Object[] arguments, int offset, java.lang.Class fallback)protected static java.lang.StringnormalizedValue(java.lang.Object argument)static booleanparametersAreCompatible(java.lang.Class[] arguments, java.lang.Class[] parameters)static booleansameClass(java.lang.Class[] params, java.lang.Object arg)static booleansameClasses(java.lang.Class[] params)static booleansameClasses(java.lang.Class[] params, java.lang.Object arg1)static booleansameClasses(java.lang.Class[] params, java.lang.Object[] arguments)static booleansameClasses(java.lang.Class[] params, java.lang.Object[] arguments, boolean weakNullCheck)static booleansameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2)static booleansameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)static booleansameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)protected static java.lang.StringshortName(java.lang.Object object)static voidunwrap(java.lang.Object[] arguments)static java.lang.Class[]wrap(java.lang.Class[] classes)
 
- 
- 
- 
Field Detail- 
EMPTY_ARRAYpublic static final java.lang.Object[] EMPTY_ARRAY 
 - 
EMPTY_TYPE_ARRAYpublic static final java.lang.Class[] EMPTY_TYPE_ARRAY 
 - 
ARRAY_WITH_NULLpublic static final java.lang.Object[] ARRAY_WITH_NULL 
 - 
LOGprotected static final java.util.logging.Logger LOG 
 - 
EMPTY_CLASS_ARRAYpublic static final java.lang.Class[] EMPTY_CLASS_ARRAY 
 
- 
 - 
Method Detail- 
accessibleToConstructorpublic static boolean accessibleToConstructor(java.lang.Class at, java.lang.reflect.Constructor constructor)
 - 
asWrapperArraypublic static java.lang.Object[] asWrapperArray(java.lang.Object parameters, java.lang.Class componentType)
 - 
asPrimitiveArraypublic static java.lang.Object asPrimitiveArray(java.util.List list, java.lang.Class parameterType)- Parameters:
- list- the original list
- parameterType- the resulting array type
- Returns:
- the constructed array
 
 - 
calculateParameterDistancepublic static long calculateParameterDistance(java.lang.Class[] arguments, ParameterTypes pt)
 - 
capitalizepublic static java.lang.String capitalize(java.lang.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
 
 - 
chooseEmptyMethodParamspublic static java.lang.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@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
 
 - 
containsMatchingMethodpublic static boolean containsMatchingMethod(java.util.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
 
 - 
convertToTypeArraypublic 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
 
 - 
makeCommonArraypublic static java.lang.Object makeCommonArray(java.lang.Object[] arguments, int offset, java.lang.Class fallback)
 - 
makeArraypublic static java.lang.Object makeArray(java.lang.Object obj, java.lang.Class secondary, int length)
 - 
createExceptionTextpublic static GroovyRuntimeException createExceptionText(java.lang.String init, MetaMethod method, java.lang.Object object, java.lang.Object[] args, java.lang.Throwable reason, boolean setReason) 
 - 
getClassNameprotected static java.lang.String getClassName(java.lang.Object object) 
 - 
getMethodPointerpublic 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.- Parameters:
- object- the object containing the method
- methodName- the method of interest
- Returns:
- the resulting closure-like method pointer
 
 - 
isAssignableFrompublic static boolean isAssignableFrom(java.lang.Class classToTransformTo, java.lang.Class classToTransformFrom)
 - 
isGenericSetMethodpublic static boolean isGenericSetMethod(MetaMethod method) 
 - 
isSuperclassprotected static boolean isSuperclass(java.lang.Class clazz, java.lang.Class superclass)
 - 
parametersAreCompatiblepublic static boolean parametersAreCompatible(java.lang.Class[] arguments, java.lang.Class[] parameters)
 - 
logMethodCallpublic static void logMethodCall(java.lang.Object object, java.lang.String methodName, java.lang.Object[] arguments)
 - 
normalizedValueprotected static java.lang.String normalizedValue(java.lang.Object argument) 
 - 
shortNameprotected static java.lang.String shortName(java.lang.Object object) 
 - 
wrappublic static java.lang.Class[] wrap(java.lang.Class[] classes) 
 - 
sameClassespublic static boolean sameClasses(java.lang.Class[] params, java.lang.Object[] arguments, boolean weakNullCheck)
 - 
sameClassespublic static boolean sameClasses(java.lang.Class[] params, java.lang.Object[] arguments)
 - 
sameClassespublic static boolean sameClasses(java.lang.Class[] params) 
 - 
sameClassespublic static boolean sameClasses(java.lang.Class[] params, java.lang.Object arg1)
 - 
sameClassespublic static boolean sameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2)
 - 
sameClassespublic static boolean sameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
 - 
sameClassespublic static boolean sameClasses(java.lang.Class[] params, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)
 - 
sameClasspublic static boolean sameClass(java.lang.Class[] params, java.lang.Object arg)
 - 
castArgumentsToClassArraypublic static java.lang.Class[] castArgumentsToClassArray(java.lang.Object[] argTypes) 
 - 
unwrappublic static void unwrap(java.lang.Object[] arguments) 
 - 
doSetMetaClasspublic static void doSetMetaClass(java.lang.Object self, MetaClass mc)Sets the meta class for an object, by delegating to the appropriateDefaultGroovyMethodshelper 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 class
- mc- the metaclass
 
 - 
convertPropertyNamepublic 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
 
 
- 
 
-