@Internal public abstract class AbstractExecutableMethod extends Object implements ExecutableMethod, EnvironmentConfigurable
Abstract base class for generated ExecutableMethod classes to implement. The generated classes should
implement the Executable.invoke(Object, Object...) method at compile time providing direct dispatch
of the target method
| Modifier and Type | Field and Description |
|---|---|
protected Class[] |
argTypes |
protected Class |
declaringType |
protected String |
methodName |
CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBEREMPTY| Modifier | Constructor and Description |
|---|---|
protected |
AbstractExecutableMethod(Class<?> declaringType,
String methodName,
Argument genericReturnType) |
protected |
AbstractExecutableMethod(Class<?> declaringType,
String methodName,
Argument genericReturnType,
Argument... arguments) |
| Modifier and Type | Method and Description |
|---|---|
void |
configure(Environment environment)
Configure the component for the given environment.
|
boolean |
equals(Object o) |
AnnotationMetadata |
getAnnotationMetadata()
Supplies the metadata.
|
Argument[] |
getArguments()
The required argument types.
|
Class[] |
getArgumentTypes() |
Class |
getDeclaringType() |
String |
getMethodName() |
ReturnType |
getReturnType() |
Method |
getTargetMethod()
Soft resolves the target
Method avoiding reflection until as late as possible. |
int |
hashCode() |
Object |
invoke(Object instance,
Object... arguments)
Invokes the method.
|
protected abstract Object |
invokeInternal(Object instance,
Object[] arguments) |
protected AnnotationMetadata |
resolveAnnotationMetadata()
Resolves the annotation metadata for this method.
|
protected Method |
resolveTargetMethod()
Resolves the target method.
|
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitisAbstractgetArgumentsgetArgumentNames, getArguments, getName, getTargetMethodbooleanValue, booleanValue, booleanValue, booleanValue, classValue, classValue, classValue, classValue, classValues, classValues, classValues, classValues, doubleValue, doubleValue, doubleValue, enumValue, enumValue, enumValue, enumValue, findAnnotation, findAnnotation, findDeclaredAnnotation, findDeclaredAnnotation, getAnnotation, getAnnotation, getAnnotationNameByStereotype, getAnnotationNameByStereotype, getAnnotationNames, getAnnotationNamesByStereotype, getAnnotationNamesByStereotype, getAnnotationType, getAnnotationTypeByStereotype, getAnnotationTypeByStereotype, getAnnotationTypesByStereotype, getAnnotationValuesByType, getDeclaredAnnotation, getDeclaredAnnotation, getDeclaredAnnotationNameByStereotype, getDeclaredAnnotationNames, getDeclaredAnnotationNamesByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationValuesByType, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValues, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValues, getValues, hasAnnotation, hasAnnotation, hasDeclaredAnnotation, hasDeclaredAnnotation, hasDeclaredStereotype, hasDeclaredStereotype, hasDeclaredStereotype, hasStereotype, hasStereotype, hasStereotype, hasStereotype, intValue, intValue, intValue, isAnnotationPresent, isDeclaredAnnotationPresent, isEmpty, isFalse, isFalse, isPresent, isPresent, isTrue, isTrue, longValue, longValue, stringValue, stringValue, stringValue, stringValue, stringValues, stringValues, synthesize, synthesizeAll, synthesizeAnnotationsByType, synthesizeDeclared, synthesizeDeclared, synthesizeDeclaredAnnotationsByTypehasSimpleAnnotation, hasSimpleDeclaredAnnotationisDeclaredNullable, isNullableprotected final Class declaringType
protected final String methodName
protected final Class[] argTypes
protected AbstractExecutableMethod(Class<?> declaringType, String methodName, Argument genericReturnType, Argument... arguments)
declaringType - The declaring typemethodName - The method namegenericReturnType - The generic return typearguments - The argumentspublic AnnotationMetadata getAnnotationMetadata()
AnnotationMetadataProviderAnnotationMetadata.EMPTY_METADATA.getAnnotationMetadata in interface AnnotationMetadataProviderAnnotationMetadatapublic void configure(Environment environment)
EnvironmentConfigurableconfigure in interface EnvironmentConfigurableenvironment - The environmentpublic boolean equals(Object o)
public int hashCode()
public ReturnType getReturnType()
getReturnType in interface MethodReferencepublic Class[] getArgumentTypes()
getArgumentTypes in interface MethodReferencepublic Class getDeclaringType()
getDeclaringType in interface MethodReferencepublic String getMethodName()
getMethodName in interface MethodReferencepublic final Object invoke(Object instance, Object... arguments)
Executableinvoke in interface Executableinstance - The instancearguments - The argumentsprotected abstract Object invokeInternal(Object instance, Object[] arguments)
instance - The instancearguments - The argumentsprotected AnnotationMetadata resolveAnnotationMetadata()
AnnotationMetadatapublic Argument[] getArguments()
ExecutablegetArguments in interface Executablepublic final Method getTargetMethod()
Method avoiding reflection until as late as possible.NoSuchMethodError - if the method doesn't exist