@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_MEMBER
EMPTY
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, wait
getArguments
getArgumentNames, getArguments, getTargetMethod
booleanValue, 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, 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, synthesizeDeclaredAnnotationsByType
protected 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()
AnnotationMetadataProvider
AnnotationMetadata.EMPTY_METADATA
.getAnnotationMetadata
in interface AnnotationMetadataProvider
AnnotationMetadata
public void configure(Environment environment)
EnvironmentConfigurable
configure
in interface EnvironmentConfigurable
environment
- The environmentpublic boolean equals(Object o)
public int hashCode()
public ReturnType getReturnType()
getReturnType
in interface MethodReference
public Class[] getArgumentTypes()
getArgumentTypes
in interface MethodReference
public Class getDeclaringType()
getDeclaringType
in interface MethodReference
public String getMethodName()
getMethodName
in interface MethodReference
public final Object invoke(Object instance, Object... arguments)
Executable
invoke
in interface Executable
instance
- The instancearguments
- The argumentsprotected abstract Object invokeInternal(Object instance, Object[] arguments)
instance
- The instancearguments
- The argumentsprotected AnnotationMetadata resolveAnnotationMetadata()
AnnotationMetadata
public Argument[] getArguments()
Executable
getArguments
in interface Executable
public final Method getTargetMethod()
Method
avoiding reflection until as late as possible.NoSuchMethodError
- if the method doesn't exist