Interface MethodElement

All Superinterfaces:
AnnotatedElement, AnnotationMetadata, AnnotationMetadataDelegate, AnnotationMetadataProvider, AnnotationSource, Described, Element, MemberElement, MutableAnnotationMetadataDelegate<Element>, Named
All Known Subinterfaces:
BeanConstructorElement, BeanMethodElement, ConstructorElement
All Known Implementing Classes:
GroovyConstructorElement, GroovyMethodElement, JavaMethodElement

public interface MethodElement extends MemberElement
Stores data about an element that references a method.
Since:
1.0
Author:
James Kleeh
  • Method Details

    • getMethodAnnotationMetadata

      @NonNull default MutableAnnotationMetadataDelegate<AnnotationMetadata> getMethodAnnotationMetadata()
      Returns the method annotations. The method will only return annotations defined on a method or inherited from the super methods, while AnnotationMetadataProvider.getAnnotationMetadata() for a method combines the class and the method annotations. NOTE: For a constructor AnnotationMetadataProvider.getAnnotationMetadata() will not combine the class annotations.
      Returns:
      The method annotation metadata
      Since:
      4.0.0
    • getReturnType

      @NonNull ClassElement getReturnType()
      Returns:
      The return type of the method
    • getDeclaredTypeVariables

      default List<? extends GenericPlaceholderElement> getDeclaredTypeVariables()
      Returns:
      The type arguments declared on this method.
    • getTypeArguments

      @NonNull default Map<String,ClassElement> getTypeArguments()
      The type arguments for this method element. The type arguments should include the type arguments added to the method plus the type arguments of the declaring class.
      Returns:
      The type arguments for this method element
      Since:
      4.0.0
    • getDeclaredTypeArguments

      @NonNull default Map<String,ClassElement> getDeclaredTypeArguments()
      The declared type arguments for this method element.
      Returns:
      The declared type arguments for this method element
      Since:
      4.0.0
    • getReceiverType

      default Optional<ClassElement> getReceiverType()

      Returns the receiver type of this executable, or empty if the method has no receiver type.

      A MethodElement which is an instance method, or a constructor of an inner class, has a receiver type derived from the declaring type.

      A MethodElement which is a static method, or a constructor of a non-inner class, or an initializer (static or instance), has no receiver type.

      Returns:
      The receiver type for the method if one exists.
      Since:
      3.1.0
    • getThrownTypes

      @NonNull default ClassElement[] getThrownTypes()
      Returns the types declared in the throws declaration of a method.
      Returns:
      The throws types, if any. Never null.
      Since:
      3.1.0
    • getParameters

      @NonNull ParameterElement[] getParameters()
      Returns:
      The method parameters
    • withNewParameters

      @NonNull default MethodElement withNewParameters(@NonNull ParameterElement... newParameters)
      Takes this method element and transforms into a new method element with the given parameters appended to the existing parameters.
      Parameters:
      newParameters - The new parameters
      Returns:
      A new method element
      Since:
      2.3.0
    • withParameters

      @NonNull MethodElement withParameters(@NonNull ParameterElement... newParameters)
      Takes this method element and transforms into a new method element with the given parameters.
      Parameters:
      newParameters - The new parameters
      Returns:
      A new method element
      Since:
      4.0.0
    • withNewOwningType

      @NonNull default MethodElement withNewOwningType(@NonNull ClassElement owningType)
      Returns a new method with a new owning type.
      Parameters:
      owningType - The owning type.
      Returns:
      A new method element
      Since:
      4.0.0
    • addAssociatedBean

      @NonNull default BeanElementBuilder addAssociatedBean(@NonNull ClassElement type)
      This method adds an associated bean using this method element as the originating element.

      Note that this method can only be called on classes being directly compiled by Micronaut. If the ClassElement is loaded from pre-compiled code an UnsupportedOperationException will be thrown.

      Parameters:
      type - The type of the bean
      Returns:
      A bean builder
    • getSuspendParameters

      @NonNull default ParameterElement[] getSuspendParameters()
      If isSuspend() returns true this method exposes the continuation parameter in addition to the other parameters of the method.
      Returns:
      The suspend parameters
      Since:
      2.3.0
    • hasParameters

      default boolean hasParameters()
      Returns true if the method has parameters.
      Returns:
      True if it does
    • isSuspend

      default boolean isSuspend()
      Is the method a Kotlin suspend function.
      Returns:
      True if it is.
      Since:
      2.3.0
    • isDefault

      default boolean isDefault()
      Is the method a default method on an interfaces.
      Returns:
      True if it is.
      Since:
      2.3.0
    • isVarArgs

      default boolean isVarArgs()
      If method has varargs parameter.
      Returns:
      True if it does
      Since:
      4.0.0
    • getGenericReturnType

      @NonNull default ClassElement getGenericReturnType()
      The generic return type of the method.
      Returns:
      The return type of the method
      Since:
      1.1.1
    • getDescription

      @NonNull default String getDescription(boolean simple)
      Get the method description.
      Specified by:
      getDescription in interface Described
      Specified by:
      getDescription in interface Element
      Parameters:
      simple - If simple type names are to be used
      Returns:
      The method description
    • overrides

      default boolean overrides(@NonNull MethodElement overridden)
      Checks if this method element overrides another.
      Parameters:
      overridden - Possible overridden method
      Returns:
      true if this overrides passed method element
      Since:
      3.1
    • hides

      default boolean hides(@NonNull MemberElement memberElement)
      Description copied from interface: MemberElement
      Checks if this member element hides another.
      Specified by:
      hides in interface MemberElement
      Parameters:
      memberElement - The possibly hidden element
      Returns:
      true if this member element hides passed field element
    • of

      @NonNull static MethodElement of(@NonNull ClassElement declaredType, @NonNull AnnotationMetadata annotationMetadata, @NonNull ClassElement returnType, @NonNull ClassElement genericReturnType, @NonNull String name, ParameterElement... parameterElements)
      Creates a MethodElement for the given parameters.
      Parameters:
      declaredType - The declaring type
      annotationMetadata - The annotation metadata
      returnType - The return type
      genericReturnType - The generic return type
      name - The name
      parameterElements - The parameter elements
      Returns:
      The method element
    • of

      @NonNull static MethodElement of(@NonNull ClassElement owningType, @NonNull ClassElement declaringType, @NonNull AnnotationMetadataProvider methodAnnotationMetadataProvider, @NonNull AnnotationMetadataProvider annotationMetadataProvider, @NonNull AbstractAnnotationMetadataBuilder<?,?> metadataBuilder, @NonNull ClassElement returnType, @NonNull ClassElement genericReturnType, @NonNull String name, boolean isStatic, boolean isFinal, ParameterElement... parameterElements)
      Creates a MethodElement for the given parameters.
      Parameters:
      owningType - The owing type
      declaringType - The declaring type
      methodAnnotationMetadataProvider - The method annotation metadata provider
      annotationMetadataProvider - The annotation metadata provider
      metadataBuilder - The metadata builder
      returnType - The return type
      genericReturnType - The generic return type
      name - The name
      isStatic - Is static
      isFinal - Is final
      parameterElements - The parameter elements
      Returns:
      The method element
      Since:
      4.0.0
    • withAnnotationMetadata

      default MethodElement withAnnotationMetadata(AnnotationMetadata annotationMetadata)
      Description copied from interface: Element
      Copies this element and overrides its annotations.
      Specified by:
      withAnnotationMetadata in interface Element
      Specified by:
      withAnnotationMetadata in interface MemberElement
      Parameters:
      annotationMetadata - The annotation metadata
      Returns:
      A new element