Class AbstractExecutableMethod
java.lang.Object
io.micronaut.context.AbstractExecutableMethod
- All Implemented Interfaces:
EnvironmentConfigurable, AnnotatedElement, AnnotationMetadata, AnnotationMetadataDelegate, AnnotationMetadataProvider, AnnotationSource, Described, Named, Executable, UnsafeExecutable, ExecutableMethod, MethodReference
@Internal
public abstract class AbstractExecutableMethod
extends Object
implements UnsafeExecutable, 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
- Since:
- 1.0
- Author:
- Graeme Rocher
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Class<?>[]protected final Class<?> protected final StringFields inherited from interface AnnotationMetadata
CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBERFields inherited from interface AnnotationSource
EMPTY -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractExecutableMethod(Class<?> declaringType, String methodName) protectedAbstractExecutableMethod(Class<?> declaringType, String methodName, Argument genericReturnType) protectedAbstractExecutableMethod(Class<?> declaringType, String methodName, Argument genericReturnType, Argument... arguments) -
Method Summary
Modifier and TypeMethodDescriptionvoidconfigure(Environment environment) Configure the component for the given environment.booleanSupplies the metadata.Argument<?>[]The required argument types.Class<?>[]Class<?> final MethodSoft resolves the targetMethodavoiding reflection until as late as possible.inthashCode()booleanDoes the metadata contain any property expressions like${foo.bar}.final @Nullable ObjectInvokes the method.protected abstract @Nullable ObjectinvokeInternal(Object instance, @Nullable Object[] arguments) @Nullable ObjectinvokeUnsafe(Object instance, @Nullable Object... arguments) Invokes the method without the arguments' validation.protected AnnotationMetadataResolves the annotation metadata for this method.protected MethodResolves the target method.toString()Methods inherited from interface AnnotatedElement
isDeclaredNonNull, isDeclaredNullable, isNonNull, isNullableMethods inherited from interface AnnotationMetadata
enumValuesSet, enumValuesSet, getValues, hasDeclaredStereotype, hasEvaluatedExpressions, hasStereotypeNonRepeating, isAnnotationPresent, isDeclaredAnnotationPresentMethods inherited from interface AnnotationMetadataDelegate
booleanValue, booleanValue, booleanValue, booleanValue, classValue, classValue, classValue, classValue, classValues, classValues, classValues, classValues, copyAnnotationMetadata, doubleValue, doubleValue, doubleValue, enumValue, enumValue, enumValue, enumValue, enumValues, enumValues, enumValues, enumValues, findAnnotation, findAnnotation, findDeclaredAnnotation, findDeclaredAnnotation, findRepeatableAnnotation, findRepeatableAnnotation, getAnnotation, getAnnotation, getAnnotationNameByStereotype, getAnnotationNameByStereotype, getAnnotationNames, getAnnotationNamesByStereotype, getAnnotationNamesByStereotype, getAnnotationType, getAnnotationType, getAnnotationTypeByStereotype, getAnnotationTypeByStereotype, getAnnotationTypesByStereotype, getAnnotationTypesByStereotype, getAnnotationTypesByStereotype, getAnnotationValuesByName, getAnnotationValuesByStereotype, getAnnotationValuesByType, getDeclaredAnnotation, getDeclaredAnnotation, getDeclaredAnnotationNameByStereotype, getDeclaredAnnotationNames, getDeclaredAnnotationNamesByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationValuesByName, getDeclaredAnnotationValuesByType, getDeclaredMetadata, getDeclaredStereotypeAnnotationNames, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValues, getStereotypeAnnotationNames, getTargetAnnotationMetadata, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValues, getValues, hasAnnotation, hasAnnotation, hasDeclaredAnnotation, hasDeclaredAnnotation, hasDeclaredStereotype, hasDeclaredStereotype, hasDeclaredStereotype, hasSimpleAnnotation, hasSimpleDeclaredAnnotation, hasStereotype, hasStereotype, hasStereotype, hasStereotype, intValue, intValue, intValue, isAnnotationPresent, isDeclaredAnnotationPresent, isEmpty, isFalse, isFalse, isPresent, isPresent, isRepeatableAnnotation, isRepeatableAnnotation, isTrue, isTrue, longValue, longValue, stringValue, stringValue, stringValue, stringValue, stringValues, stringValues, stringValues, stringValues, synthesize, synthesize, synthesizeAll, synthesizeAnnotationsByType, synthesizeDeclared, synthesizeDeclared, synthesizeDeclared, synthesizeDeclaredAnnotationsByTypeMethods inherited from interface Executable
getArgumentsMethods inherited from interface ExecutableMethod
getDescription, getDescription, isAbstract, isSuspendMethods inherited from interface MethodReference
getArgumentNames, getArguments, getName, getTargetMethod
-
Field Details
-
declaringType
-
methodName
-
argTypes
-
-
Constructor Details
-
AbstractExecutableMethod
-
AbstractExecutableMethod
-
AbstractExecutableMethod
-
-
Method Details
-
hasPropertyExpressions
public boolean hasPropertyExpressions()Description copied from interface:AnnotationMetadataDoes the metadata contain any property expressions like${foo.bar}. Note this by default returnstrueas previous versions of Micronaut must assume metadata is present. The compilation time this is computed in order to decide whether to instrument annotation metadata with environment specific logic.- Specified by:
hasPropertyExpressionsin interfaceAnnotationMetadata- Specified by:
hasPropertyExpressionsin interfaceAnnotationMetadataDelegate- Specified by:
hasPropertyExpressionsin interfaceEnvironmentConfigurable- Returns:
- True if property expressions are present
-
getAnnotationMetadata
Description copied from interface:AnnotationMetadataProviderSupplies the metadata. Defaults toAnnotationMetadata.EMPTY_METADATA.- Specified by:
getAnnotationMetadatain interfaceAnnotationMetadataProvider- Returns:
- The
AnnotationMetadata
-
configure
Description copied from interface:EnvironmentConfigurableConfigure the component for the given environment.- Specified by:
configurein interfaceEnvironmentConfigurable- Parameters:
environment- The environment
-
equals
-
hashCode
public int hashCode() -
toString
-
getReturnType
- Specified by:
getReturnTypein interfaceMethodReference- Returns:
- Return the return type
-
getArgumentTypes
- Specified by:
getArgumentTypesin interfaceMethodReference- Returns:
- The argument types
-
getDeclaringType
- Specified by:
getDeclaringTypein interfaceExecutable- Specified by:
getDeclaringTypein interfaceMethodReference- Returns:
- The declaring type
-
getMethodName
- Specified by:
getMethodNamein interfaceMethodReference- Returns:
- The name of the method
-
invoke
Description copied from interface:ExecutableInvokes the method.- Specified by:
invokein interfaceExecutable- Parameters:
instance- The instance. Nullable only if it's a static method call.arguments- The arguments- Returns:
- The result
-
invokeUnsafe
Description copied from interface:UnsafeExecutableInvokes the method without the arguments' validation.- Specified by:
invokeUnsafein interfaceUnsafeExecutable- Parameters:
instance- The instance. Nullable only if it's a static method call.arguments- The arguments- Returns:
- The result
-
invokeInternal
-
resolveAnnotationMetadata
Resolves the annotation metadata for this method. Subclasses- Returns:
- The
AnnotationMetadata
-
getArguments
Description copied from interface:ExecutableThe required argument types.- Specified by:
getArgumentsin interfaceExecutable- Returns:
- The arguments
-
getTargetMethod
Soft resolves the targetMethodavoiding reflection until as late as possible.- Returns:
- The method
- Throws:
NoSuchMethodError- if the method doesn't exist
-
resolveTargetMethod
-