Class AbstractGroovyElement

java.lang.Object
io.micronaut.inject.ast.annotation.AbstractAnnotationElement
io.micronaut.ast.groovy.visitor.AbstractGroovyElement
All Implemented Interfaces:
AnnotatedElement, AnnotationMetadata, AnnotationMetadataDelegate, AnnotationMetadataProvider, AnnotationSource, Described, Named, MutableAnnotationMetadataDelegate<Element>, Element
Direct Known Subclasses:
GroovyClassElement, GroovyEnumConstantElement, GroovyFieldElement, GroovyMethodElement, GroovyPackageElement, GroovyParameterElement

@Internal public abstract class AbstractGroovyElement extends AbstractAnnotationElement
Abstract Groovy element.
Since:
1.1
Author:
Graeme Rocher, Denis Stepanov
  • Field Details

    • sourceUnit

      protected final org.codehaus.groovy.control.SourceUnit sourceUnit
    • compilationUnit

      protected final org.codehaus.groovy.control.CompilationUnit compilationUnit
    • visitorContext

      protected final GroovyVisitorContext visitorContext
  • Constructor Details

    • AbstractGroovyElement

      protected AbstractGroovyElement(GroovyVisitorContext visitorContext, GroovyNativeElement nativeElement, ElementAnnotationMetadataFactory annotationMetadataFactory)
      Default constructor.
      Parameters:
      visitorContext - The groovy visitor context
      nativeElement - The native element
      annotationMetadataFactory - The annotation metadata factory
  • Method Details

    • copyConstructor

      @NonNull protected abstract AbstractGroovyElement copyConstructor()
      Constructs this element by invoking the constructor.
      Returns:
      the copy
    • copyValues

      protected void copyValues(@NonNull AbstractGroovyElement element)
      Copies additional values after the element was constructed by copyConstructor().
      Parameters:
      element - the values to be copied to
    • copy

      @NonNull protected final AbstractGroovyElement copy()
      Makes a copy of this element.
      Returns:
      a copy
    • withAnnotationMetadata

      public Element withAnnotationMetadata(AnnotationMetadata annotationMetadata)
      Description copied from interface: Element
      Copies this element and overrides its annotations.
      Parameters:
      annotationMetadata - The annotation metadata
      Returns:
      A new element
    • getNativeType

      public GroovyNativeElement getNativeType()
      Description copied from interface: Element
      Returns the native underlying type. This API is extended by all of the inject language implementations. The object returned by this method will be the language native type the information is being retrieved from.
      Returns:
      The native type
    • isPackagePrivate

      public boolean isPackagePrivate()
      Returns:
      True if the element is package private.
    • newClassElement

      @NonNull protected final ClassElement newClassElement(@NonNull org.codehaus.groovy.ast.ClassNode type, @Nullable Map<String,ClassElement> genericsSpec)
    • newClassElement

      @NonNull protected final ClassElement newClassElement(org.codehaus.groovy.ast.GenericsType genericsType)
    • newClassElement

      @NonNull protected final ClassElement newClassElement(org.codehaus.groovy.ast.ClassNode type)
    • resolveMethodTypeArguments

      @NonNull protected final Map<String,ClassElement> resolveMethodTypeArguments(GroovyNativeElement declaredElement, org.codehaus.groovy.ast.MethodNode methodNode, @Nullable Map<String,ClassElement> parentTypeArguments)
    • resolveClassTypeArguments

      @NonNull protected final Map<String,ClassElement> resolveClassTypeArguments(GroovyNativeElement declaredElement, org.codehaus.groovy.ast.ClassNode classNode, @Nullable Map<String,ClassElement> parentTypeArguments, Set<Object> visitedTypes)
    • resolveTypeArgumentsToObject

      @NonNull protected final Map<String,ClassElement> resolveTypeArgumentsToObject(org.codehaus.groovy.ast.ClassNode classNode)
    • getDocumentation

      public Optional<String> getDocumentation()
      Returns:
      The documentation, if any.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • resolveModifiers

      protected Set<ElementModifier> resolveModifiers(org.codehaus.groovy.ast.MethodNode methodNode)
      Resolve modifiers for a method node.
      Parameters:
      methodNode - The method node
      Returns:
      The modifiers
    • resolveModifiers

      protected Set<ElementModifier> resolveModifiers(org.codehaus.groovy.ast.FieldNode fieldNode)
      Resolve modifiers for a field node.
      Parameters:
      fieldNode - The field node
      Returns:
      The modifiers
    • resolveModifiers

      protected Set<ElementModifier> resolveModifiers(org.codehaus.groovy.ast.ClassNode classNode)
      Resolve modifiers for a class node.
      Parameters:
      classNode - The class node
      Returns:
      The modifiers