Class GroovyClassElement

java.lang.Object
io.micronaut.inject.ast.annotation.AbstractAnnotationElement
io.micronaut.ast.groovy.visitor.AbstractGroovyElement
io.micronaut.ast.groovy.visitor.GroovyClassElement
All Implemented Interfaces:
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.inject.ast.annotation.MutableAnnotationMetadataDelegate<io.micronaut.inject.ast.Element>, io.micronaut.inject.ast.ArrayableClassElement, io.micronaut.inject.ast.ClassElement, io.micronaut.inject.ast.Element, io.micronaut.inject.ast.TypedElement

@Internal public class GroovyClassElement extends AbstractGroovyElement implements io.micronaut.inject.ast.ArrayableClassElement
A class element returning data from a ClassNode.
Since:
1.0
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final org.codehaus.groovy.ast.ClassNode
     
    protected Map<String,io.micronaut.inject.ast.ClassElement>
     

    Fields inherited from class io.micronaut.ast.groovy.visitor.AbstractGroovyElement

    compilationUnit, sourceUnit, visitorContext

    Fields inherited from class io.micronaut.inject.ast.annotation.AbstractAnnotationElement

    elementAnnotationMetadataFactory, presetAnnotationMetadata

    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

    Fields inherited from interface io.micronaut.inject.ast.ClassElement

    ZERO_CLASS_ELEMENTS

    Fields inherited from interface io.micronaut.inject.ast.Element

    EMPTY_ELEMENT_ARRAY

    Fields inherited from interface io.micronaut.inject.ast.annotation.MutableAnnotationMetadataDelegate

    EMPTY
  • Constructor Summary

    Constructors
    Constructor
    Description
    GroovyClassElement(GroovyVisitorContext visitorContext, GroovyNativeElement nativeElement, io.micronaut.inject.ast.annotation.ElementAnnotationMetadataFactory annotationMetadataFactory)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Constructs this element by invoking the constructor.
    io.micronaut.core.annotation.AnnotationMetadata
     
    protected io.micronaut.inject.ast.annotation.MutableAnnotationMetadataDelegate<?>
     
    int
     
    List<io.micronaut.inject.ast.PropertyElement>
     
    List<io.micronaut.inject.ast.PropertyElement>
    getBeanProperties(io.micronaut.inject.ast.PropertyElementQuery propertyElementQuery)
     
    @NonNull List<? extends io.micronaut.inject.ast.ClassElement>
     
    @NonNull List<? extends io.micronaut.inject.ast.GenericPlaceholderElement>
     
    Optional<io.micronaut.inject.ast.MethodElement>
     
    <T extends io.micronaut.inject.ast.Element>
    List<T>
    getEnclosedElements(@NonNull io.micronaut.inject.ast.ElementQuery<T> query)
     
    Optional<io.micronaut.inject.ast.ClassElement>
     
    Collection<io.micronaut.inject.ast.ClassElement>
     
    Set<io.micronaut.inject.ast.ElementModifier>
     
     
    Optional<io.micronaut.inject.ast.ClassElement>
     
    io.micronaut.inject.ast.PackageElement
     
     
    @NonNull Optional<io.micronaut.inject.ast.MethodElement>
     
     
    final <T extends io.micronaut.inject.ast.Element>
    List<T>
    getSourceEnclosedElements(@NonNull io.micronaut.inject.ast.ElementQuery<T> query)
    This method will produce th elements just like getEnclosedElements(ElementQuery) but the elements are constructed as the source ones.
    Optional<io.micronaut.inject.ast.ClassElement>
     
    List<io.micronaut.inject.ast.PropertyElement>
     
    io.micronaut.inject.ast.ClassElement
     
    io.micronaut.inject.ast.annotation.MutableAnnotationMetadataDelegate<io.micronaut.core.annotation.AnnotationMetadata>
     
    @NonNull Map<String,io.micronaut.inject.ast.ClassElement>
     
    boolean
     
    boolean
     
    boolean
    isAssignable(io.micronaut.inject.ast.ClassElement type)
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
     
    io.micronaut.inject.ast.ClassElement
    withAnnotationMetadata(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)
     
    io.micronaut.inject.ast.ClassElement
    withArrayDimensions(int arrayDimensions)
     
    final @NonNull io.micronaut.inject.ast.ClassElement
    withTypeArguments(@NonNull Collection<io.micronaut.inject.ast.ClassElement> typeArguments)
     
    io.micronaut.inject.ast.ClassElement
    withTypeArguments(Map<String,io.micronaut.inject.ast.ClassElement> typeArguments)
     

    Methods inherited from class io.micronaut.inject.ast.annotation.AbstractAnnotationElement

    annotate, annotate, annotate, annotate, annotate, getElementAnnotationMetadata, getElementAnnotationMetadataFactory, removeAnnotation, removeAnnotation, removeAnnotationIf, removeStereotype, removeStereotype

    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, hasPropertyExpressions, 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.inject.ast.ArrayableClassElement

    fromArray, toArray

    Methods inherited from interface io.micronaut.inject.ast.ClassElement

    addAssociatedBean, findDefaultStaticCreator, findField, findMethod, findStaticCreator, foldBoundGenericTypes, getAccessibleConstructors, getAccessibleStaticCreators, getAllTypeArguments, getCanonicalName, getEnclosedElement, getFields, getFirstTypeArgument, getMethods, getRawClassElement, getTypeArguments, getTypeArguments, isAssignable, isContainerType, isEnum, isGenericPlaceholder, isIterable, isOptional, isProxy, isRawType, isRecord, isWildcard, withBoundGenericTypes

    Methods inherited from interface io.micronaut.inject.ast.Element

    annotate, annotate, annotate, annotate, annotate, getDescription, getDescription, getDocumentation, getNativeType, isPackagePrivate, isSynthetic, removeAnnotation, removeAnnotation, removeAnnotationIf, removeStereotype, removeStereotype

    Methods inherited from interface io.micronaut.inject.ast.TypedElement

    getGenericType, isVoid
  • Field Details

    • classNode

      protected final org.codehaus.groovy.ast.ClassNode classNode
    • resolvedTypeArguments

      protected Map<String,io.micronaut.inject.ast.ClassElement> resolvedTypeArguments
  • Constructor Details

    • GroovyClassElement

      public GroovyClassElement(GroovyVisitorContext visitorContext, GroovyNativeElement nativeElement, io.micronaut.inject.ast.annotation.ElementAnnotationMetadataFactory annotationMetadataFactory)
      Parameters:
      visitorContext - The visitor context
      nativeElement - The native element
      annotationMetadataFactory - The annotation metadata
  • Method Details

    • copyConstructor

      protected GroovyClassElement copyConstructor()
      Description copied from class: AbstractGroovyElement
      Constructs this element by invoking the constructor.
      Specified by:
      copyConstructor in class AbstractGroovyElement
      Returns:
      the copy
    • getAnnotationMetadata

      public io.micronaut.core.annotation.AnnotationMetadata getAnnotationMetadata()
      Specified by:
      getAnnotationMetadata in interface io.micronaut.core.annotation.AnnotationMetadataProvider
      Overrides:
      getAnnotationMetadata in class io.micronaut.inject.ast.annotation.AbstractAnnotationElement
    • getAnnotationMetadataToWrite

      protected io.micronaut.inject.ast.annotation.MutableAnnotationMetadataDelegate<?> getAnnotationMetadataToWrite()
      Overrides:
      getAnnotationMetadataToWrite in class io.micronaut.inject.ast.annotation.AbstractAnnotationElement
    • withAnnotationMetadata

      public io.micronaut.inject.ast.ClassElement withAnnotationMetadata(io.micronaut.core.annotation.AnnotationMetadata annotationMetadata)
      Specified by:
      withAnnotationMetadata in interface io.micronaut.inject.ast.ClassElement
      Specified by:
      withAnnotationMetadata in interface io.micronaut.inject.ast.Element
      Overrides:
      withAnnotationMetadata in class AbstractGroovyElement
    • withTypeArguments

      public io.micronaut.inject.ast.ClassElement withTypeArguments(Map<String,io.micronaut.inject.ast.ClassElement> typeArguments)
      Specified by:
      withTypeArguments in interface io.micronaut.inject.ast.ClassElement
    • withTypeArguments

      @NonNull public final @NonNull io.micronaut.inject.ast.ClassElement withTypeArguments(@NonNull @NonNull Collection<io.micronaut.inject.ast.ClassElement> typeArguments)
      Specified by:
      withTypeArguments in interface io.micronaut.inject.ast.ClassElement
    • isTypeVariable

      public boolean isTypeVariable()
      Specified by:
      isTypeVariable in interface io.micronaut.inject.ast.ClassElement
    • getEnclosedElements

      public <T extends io.micronaut.inject.ast.Element> List<T> getEnclosedElements(@NonNull @NonNull io.micronaut.inject.ast.ElementQuery<T> query)
      Specified by:
      getEnclosedElements in interface io.micronaut.inject.ast.ClassElement
    • getSourceEnclosedElements

      public final <T extends io.micronaut.inject.ast.Element> List<T> getSourceEnclosedElements(@NonNull @NonNull io.micronaut.inject.ast.ElementQuery<T> query)
      This method will produce th elements just like getEnclosedElements(ElementQuery) but the elements are constructed as the source ones. ElementFactory.newSourceMethodElement(ClassElement, Object, ElementAnnotationMetadataFactory).
      Type Parameters:
      T - The element type
      Parameters:
      query - The query
      Returns:
      The list of elements
    • getModifiers

      public Set<io.micronaut.inject.ast.ElementModifier> getModifiers()
      Specified by:
      getModifiers in interface io.micronaut.inject.ast.Element
    • isInner

      public boolean isInner()
      Specified by:
      isInner in interface io.micronaut.inject.ast.ClassElement
    • getEnclosingType

      public Optional<io.micronaut.inject.ast.ClassElement> getEnclosingType()
      Specified by:
      getEnclosingType in interface io.micronaut.inject.ast.ClassElement
    • isInterface

      public boolean isInterface()
      Specified by:
      isInterface in interface io.micronaut.inject.ast.ClassElement
    • isPrimitive

      public boolean isPrimitive()
      Specified by:
      isPrimitive in interface io.micronaut.inject.ast.TypedElement
    • getInterfaces

      public Collection<io.micronaut.inject.ast.ClassElement> getInterfaces()
      Specified by:
      getInterfaces in interface io.micronaut.inject.ast.ClassElement
    • getSuperType

      public Optional<io.micronaut.inject.ast.ClassElement> getSuperType()
      Specified by:
      getSuperType in interface io.micronaut.inject.ast.ClassElement
    • getPrimaryConstructor

      @NonNull public @NonNull Optional<io.micronaut.inject.ast.MethodElement> getPrimaryConstructor()
      Specified by:
      getPrimaryConstructor in interface io.micronaut.inject.ast.ClassElement
    • getDefaultConstructor

      public Optional<io.micronaut.inject.ast.MethodElement> getDefaultConstructor()
      Specified by:
      getDefaultConstructor in interface io.micronaut.inject.ast.ClassElement
    • getTypeArguments

      @NonNull public @NonNull Map<String,io.micronaut.inject.ast.ClassElement> getTypeArguments()
      Specified by:
      getTypeArguments in interface io.micronaut.inject.ast.ClassElement
    • getSyntheticBeanProperties

      public List<io.micronaut.inject.ast.PropertyElement> getSyntheticBeanProperties()
      Specified by:
      getSyntheticBeanProperties in interface io.micronaut.inject.ast.ClassElement
    • getBeanProperties

      public List<io.micronaut.inject.ast.PropertyElement> getBeanProperties(io.micronaut.inject.ast.PropertyElementQuery propertyElementQuery)
      Specified by:
      getBeanProperties in interface io.micronaut.inject.ast.ClassElement
    • getBeanProperties

      public List<io.micronaut.inject.ast.PropertyElement> getBeanProperties()
      Specified by:
      getBeanProperties in interface io.micronaut.inject.ast.ClassElement
    • isArray

      public boolean isArray()
      Specified by:
      isArray in interface io.micronaut.inject.ast.TypedElement
    • withArrayDimensions

      public io.micronaut.inject.ast.ClassElement withArrayDimensions(int arrayDimensions)
      Specified by:
      withArrayDimensions in interface io.micronaut.inject.ast.ArrayableClassElement
    • getArrayDimensions

      public int getArrayDimensions()
      Specified by:
      getArrayDimensions in interface io.micronaut.inject.ast.TypedElement
    • toString

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

      public String getName()
      Specified by:
      getName in interface io.micronaut.inject.ast.Element
      Specified by:
      getName in interface io.micronaut.core.naming.Named
    • getSimpleName

      public String getSimpleName()
      Specified by:
      getSimpleName in interface io.micronaut.inject.ast.ClassElement
      Specified by:
      getSimpleName in interface io.micronaut.inject.ast.Element
    • getPackageName

      public String getPackageName()
      Specified by:
      getPackageName in interface io.micronaut.inject.ast.ClassElement
    • getPackage

      public io.micronaut.inject.ast.PackageElement getPackage()
      Specified by:
      getPackage in interface io.micronaut.inject.ast.ClassElement
    • isAbstract

      public boolean isAbstract()
      Specified by:
      isAbstract in interface io.micronaut.inject.ast.Element
    • isStatic

      public boolean isStatic()
      Specified by:
      isStatic in interface io.micronaut.inject.ast.Element
    • isPublic

      public boolean isPublic()
      Specified by:
      isPublic in interface io.micronaut.inject.ast.Element
    • isPrivate

      public boolean isPrivate()
      Specified by:
      isPrivate in interface io.micronaut.inject.ast.Element
    • isFinal

      public boolean isFinal()
      Specified by:
      isFinal in interface io.micronaut.inject.ast.Element
    • isProtected

      public boolean isProtected()
      Specified by:
      isProtected in interface io.micronaut.inject.ast.Element
    • isAssignable

      public boolean isAssignable(String type)
      Specified by:
      isAssignable in interface io.micronaut.inject.ast.ClassElement
    • isAssignable

      public boolean isAssignable(io.micronaut.inject.ast.ClassElement type)
      Specified by:
      isAssignable in interface io.micronaut.inject.ast.ClassElement
    • getOptionalValueType

      public Optional<io.micronaut.inject.ast.ClassElement> getOptionalValueType()
      Specified by:
      getOptionalValueType in interface io.micronaut.inject.ast.ClassElement
    • getBoundGenericTypes

      @NonNull public @NonNull List<? extends io.micronaut.inject.ast.ClassElement> getBoundGenericTypes()
      Specified by:
      getBoundGenericTypes in interface io.micronaut.inject.ast.ClassElement
    • getDeclaredGenericPlaceholders

      @NonNull public @NonNull List<? extends io.micronaut.inject.ast.GenericPlaceholderElement> getDeclaredGenericPlaceholders()
      Specified by:
      getDeclaredGenericPlaceholders in interface io.micronaut.inject.ast.ClassElement
    • getType

      public io.micronaut.inject.ast.ClassElement getType()
      Specified by:
      getType in interface io.micronaut.inject.ast.ClassElement
      Specified by:
      getType in interface io.micronaut.inject.ast.TypedElement
    • getTypeAnnotationMetadata

      public io.micronaut.inject.ast.annotation.MutableAnnotationMetadataDelegate<io.micronaut.core.annotation.AnnotationMetadata> getTypeAnnotationMetadata()
      Specified by:
      getTypeAnnotationMetadata in interface io.micronaut.inject.ast.ClassElement