Class AbstractExecutableMethod

java.lang.Object
io.micronaut.context.AbstractExecutableMethod
All Implemented Interfaces:
EnvironmentConfigurable, io.micronaut.core.annotation.AnnotatedElement, io.micronaut.core.annotation.AnnotationMetadata, io.micronaut.core.annotation.AnnotationMetadataDelegate, io.micronaut.core.annotation.AnnotationMetadataProvider, io.micronaut.core.annotation.AnnotationSource, io.micronaut.core.naming.Described, io.micronaut.core.naming.Named, io.micronaut.core.type.Executable, io.micronaut.core.type.UnsafeExecutable, ExecutableMethod, MethodReference

@Internal public abstract class AbstractExecutableMethod extends Object implements io.micronaut.core.type.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
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Class<?>[]
     
    protected final Class<?>
     
    protected final String
     

    Fields inherited from interface io.micronaut.core.annotation.AnnotationMetadata

    CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBER

    Fields inherited from interface io.micronaut.core.annotation.AnnotationSource

    EMPTY
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    AbstractExecutableMethod(Class<?> declaringType, String methodName)
     
    protected
    AbstractExecutableMethod(Class<?> declaringType, String methodName, io.micronaut.core.type.Argument genericReturnType)
     
    protected
    AbstractExecutableMethod(Class<?> declaringType, String methodName, io.micronaut.core.type.Argument genericReturnType, io.micronaut.core.type.Argument... arguments)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    configure(Environment environment)
    Configure the component for the given environment.
    boolean
     
    io.micronaut.core.annotation.AnnotationMetadata
     
    io.micronaut.core.type.Argument<?>[]
     
    Class<?>[]
     
     
     
    io.micronaut.core.type.ReturnType
     
    final Method
    Soft resolves the target Method avoiding reflection until as late as possible.
    int
     
    boolean
     
    final Object
    invoke(Object instance, Object... arguments)
     
    protected abstract Object
    invokeInternal(Object instance, Object[] arguments)
     
    invokeUnsafe(Object instance, Object... arguments)
     
    protected io.micronaut.core.annotation.AnnotationMetadata
    Resolves the annotation metadata for this method.
    protected @NonNull Method
    Resolves the target method.
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface io.micronaut.core.annotation.AnnotatedElement

    isDeclaredNonNull, isDeclaredNullable, isNonNull, isNullable

    Methods inherited from interface io.micronaut.core.annotation.AnnotationMetadata

    enumValuesSet, enumValuesSet, getValues, hasDeclaredStereotype, hasEvaluatedExpressions, hasStereotypeNonRepeating, isAnnotationPresent, isDeclaredAnnotationPresent

    Methods inherited from interface io.micronaut.core.annotation.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, synthesizeDeclaredAnnotationsByType

    Methods inherited from interface io.micronaut.core.type.Executable

    getArguments

    Methods inherited from interface io.micronaut.inject.ExecutableMethod

    getDescription, getDescription, isAbstract, isSuspend

    Methods inherited from interface io.micronaut.inject.MethodReference

    getArgumentNames, getArguments, getName, getTargetMethod
  • Field Details

    • declaringType

      protected final Class<?> declaringType
    • methodName

      protected final String methodName
    • argTypes

      protected final Class<?>[] argTypes
  • Constructor Details

    • AbstractExecutableMethod

      protected AbstractExecutableMethod(Class<?> declaringType, String methodName, io.micronaut.core.type.Argument genericReturnType, io.micronaut.core.type.Argument... arguments)
      Parameters:
      declaringType - The declaring type
      methodName - The method name
      genericReturnType - The generic return type
      arguments - The arguments
    • AbstractExecutableMethod

      protected AbstractExecutableMethod(Class<?> declaringType, String methodName, io.micronaut.core.type.Argument genericReturnType)
      Parameters:
      declaringType - The declaring type
      methodName - The method name
      genericReturnType - The generic return type
    • AbstractExecutableMethod

      protected AbstractExecutableMethod(Class<?> declaringType, String methodName)
      Parameters:
      declaringType - The declaring type
      methodName - The method name
  • Method Details

    • hasPropertyExpressions

      public boolean hasPropertyExpressions()
      Specified by:
      hasPropertyExpressions in interface io.micronaut.core.annotation.AnnotationMetadata
      Specified by:
      hasPropertyExpressions in interface io.micronaut.core.annotation.AnnotationMetadataDelegate
      Specified by:
      hasPropertyExpressions in interface EnvironmentConfigurable
      Returns:
      Whether any environment specific property expressions exist in the object.
    • getAnnotationMetadata

      public io.micronaut.core.annotation.AnnotationMetadata getAnnotationMetadata()
      Specified by:
      getAnnotationMetadata in interface io.micronaut.core.annotation.AnnotationMetadataProvider
    • configure

      public void configure(Environment environment)
      Description copied from interface: EnvironmentConfigurable
      Configure the component for the given environment.
      Specified by:
      configure in interface EnvironmentConfigurable
      Parameters:
      environment - The environment
    • equals

      public boolean equals(Object o)
    • hashCode

      public int hashCode()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getReturnType

      public io.micronaut.core.type.ReturnType getReturnType()
      Specified by:
      getReturnType in interface MethodReference
      Returns:
      Return the return type
    • getArgumentTypes

      public Class<?>[] getArgumentTypes()
      Specified by:
      getArgumentTypes in interface MethodReference
      Returns:
      The argument types
    • getDeclaringType

      public Class<?> getDeclaringType()
      Specified by:
      getDeclaringType in interface io.micronaut.core.type.Executable
      Specified by:
      getDeclaringType in interface MethodReference
      Returns:
      The bean that declares this injection point
    • getMethodName

      public String getMethodName()
      Specified by:
      getMethodName in interface MethodReference
      Returns:
      The name of the method
    • invoke

      public final Object invoke(Object instance, Object... arguments)
      Specified by:
      invoke in interface io.micronaut.core.type.Executable
    • invokeUnsafe

      public Object invokeUnsafe(Object instance, Object... arguments)
      Specified by:
      invokeUnsafe in interface io.micronaut.core.type.UnsafeExecutable
    • invokeInternal

      protected abstract Object invokeInternal(Object instance, Object[] arguments)
      Parameters:
      instance - The instance
      arguments - The arguments
      Returns:
      The result
    • resolveAnnotationMetadata

      protected io.micronaut.core.annotation.AnnotationMetadata resolveAnnotationMetadata()
      Resolves the annotation metadata for this method. Subclasses
      Returns:
      The AnnotationMetadata
    • getArguments

      public io.micronaut.core.type.Argument<?>[] getArguments()
      Specified by:
      getArguments in interface io.micronaut.core.type.Executable
    • getTargetMethod

      public final Method getTargetMethod()
      Soft resolves the target Method avoiding reflection until as late as possible.
      Returns:
      The method
      Throws:
      NoSuchMethodError - if the method doesn't exist
    • resolveTargetMethod

      @NonNull protected @NonNull Method resolveTargetMethod()
      Resolves the target method.
      Returns:
      The target method