[Java] Class MetaClassHelper

  • org.codehaus.groovy.runtime.MetaClassHelper

Field Summary

Fields
Modifiers Name Description
static Object[] ARRAY_WITH_NULL
static Object[] EMPTY_ARRAY
static Class[] EMPTY_CLASS_ARRAY
static Class[] EMPTY_TYPE_ARRAY
protected static Logger LOG

Methods Summary

Methods
Type Params Return Type Name and description
static boolean accessibleToConstructor(Class at, Constructor constructor)
static Object asPrimitiveArray(List list, Class parameterType)
@param list the original list
static Object[] asWrapperArray(Object parameters, Class componentType)
static long calculateParameterDistance(Class[] arguments, ParameterTypes pt)
note: when shifting with 32 bit, you should only shift on a long.
static String capitalize(String property)
In general we want to match the signature that allows us to use as less arguments for the vargs part as possible.
static Class[] castArgumentsToClassArray(Object[] argTypes)
static Object chooseEmptyMethodParams(FastArray methods)
@param methods the methods to choose from
static Object chooseMostGeneralMethodWith1NullParam(FastArray methods)
Warning: this method does not choose properly if multiple methods with the same distance are encountered
static boolean containsMatchingMethod(List list, MetaMethod method)
@param list a list of MetaMethods
static String convertPropertyName(String prop)
Converts a String into a standard property name.
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)
static void doSetMetaClass(Object self, MetaClass mc)
Sets the meta class for an object, by delegating to the appropriate DefaultGroovyMethods helper method.
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 clazz, 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, Object[] arguments, boolean weakNullCheck)
static boolean sameClasses(Class[] params, Object[] arguments)
static boolean sameClasses(Class[] params)
static boolean sameClasses(Class[] params, Object arg1)
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)

Inherited Methods Summary

Inherited Methods
Methods inherited from class Name
class Object wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll

Field Detail

public static final Object[] ARRAY_WITH_NULL

public static final Object[] EMPTY_ARRAY

public static final Class[] EMPTY_CLASS_ARRAY

public static final Class[] EMPTY_TYPE_ARRAY

protected static final Logger LOG

Method Detail

public static boolean accessibleToConstructor(Class at, Constructor constructor)

public static Object asPrimitiveArray(List list, Class parameterType)

Parameters:
list - the original list
parameterType - the resulting array type
Returns:
the constructed array

public static Object[] asWrapperArray(Object parameters, Class componentType)

public static long calculateParameterDistance(Class[] arguments, ParameterTypes pt)

note: when shifting with 32 bit, you should only shift on a long. If you do that with an int, then i==(i<<32), which means you loose the shift information

public static String capitalize(String property)

In general we want to match the signature that allows us to use as less arguments for the vargs part as possible. That means the longer signature usually wins if both signatures are vargs, while vargs looses always against a signature without vargs. A vs B : def foo(Object[] a) {1} -> case B def foo(a,b,Object[] c) {2} -> case A assert foo(new Object(),new Object()) == 2 --> A preferred over B A vs C : def foo(Object[] a) {1} -> case B def foo(a,b) {2} -> case C assert foo(new Object(),new Object()) == 2 --> C preferred over A A vs D : def foo(Object[] a) {1} -> case D def foo(a,Object[] b) {2} -> case A assert foo(new Object()) == 2 --> A preferred over D This gives C case B def foo(a,b) {2} -> case C assert foo(new Object(),new Object()) == 2 --> C preferred over B, matches C case B def foo(a,Object[] b) {2} -> case D assert foo(new Object(),new Object()) == 2 --> D preferred over B This gives C

public static Class[] castArgumentsToClassArray(Object[] argTypes)

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)

@Deprecated public static Object chooseMostGeneralMethodWith1NullParam(FastArray methods)

Warning: this method does not choose properly if multiple methods with the same distance are encountered

deprecated:
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

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

public static String convertPropertyName(String prop)

Converts a String into a standard property name.

Parameters:
prop - the original name
Returns:
the converted name

public static Class[] convertToTypeArray(Object[] args)

param instance array to the type array

Parameters:
args - the arguments
Returns:
the types of the arguments

public static GroovyRuntimeException createExceptionText(String init, MetaMethod method, Object object, Object[] args, Throwable reason, boolean setReason)

public static void doSetMetaClass(Object self, MetaClass mc)

Sets the meta class for an object, by delegating to the appropriate DefaultGroovyMethods 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 class
mc - the metaclass

protected static String getClassName(Object object)

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

public static boolean isAssignableFrom(Class classToTransformTo, Class classToTransformFrom)

public static boolean isGenericSetMethod(MetaMethod method)

protected static boolean isSuperclass(Class clazz, Class superclass)

public static void logMethodCall(Object object, String methodName, Object[] arguments)

public static Object makeArray(Object obj, Class secondary, int length)

public static Object makeCommonArray(Object[] arguments, int offset, Class fallback)

protected static String normalizedValue(Object argument)

public static boolean parametersAreCompatible(Class[] arguments, Class[] parameters)

public static boolean sameClass(Class[] params, Object arg)

public static boolean sameClasses(Class[] params, Object[] arguments, boolean weakNullCheck)

public static boolean sameClasses(Class[] params, Object[] arguments)

public static boolean sameClasses(Class[] params)

public static boolean sameClasses(Class[] params, Object arg1)

public static boolean sameClasses(Class[] params, Object arg1, Object arg2)

public static boolean sameClasses(Class[] params, Object arg1, Object arg2, Object arg3)

public static boolean sameClasses(Class[] params, Object arg1, Object arg2, Object arg3, Object arg4)

protected static String shortName(Object object)

public static void unwrap(Object[] arguments)

public static Class[] wrap(Class[] classes)

© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/2.5.14/html/gapi/org/codehaus/groovy/runtime/MetaClassHelper.html