Class JavaAnnotationMetadataBuilder


  • public class JavaAnnotationMetadataBuilder
    extends io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
    A AnnotationMetadata for builder for Java to be used at compile time.
    Since:
    1.0
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addError​(javax.lang.model.element.Element originatingElement, java.lang.String error)  
      protected void addWarning​(javax.lang.model.element.Element originatingElement, java.lang.String warning)  
      protected java.util.List<javax.lang.model.element.Element> buildHierarchy​(javax.lang.model.element.Element element, boolean inheritTypeAnnotations, boolean declaredOnly)  
      static void clearCaches()
      Clears any caches from the last compilation round.
      protected io.micronaut.inject.visitor.VisitorContext createVisitorContext()  
      protected javax.lang.model.element.Element getAnnotationMember​(javax.lang.model.element.Element originatingElement, java.lang.CharSequence member)  
      protected java.lang.String getAnnotationMemberName​(javax.lang.model.element.Element member)  
      protected java.util.Map<java.lang.String,​javax.lang.model.element.Element> getAnnotationMembers​(java.lang.String annotationType)  
      protected java.util.Optional<javax.lang.model.element.Element> getAnnotationMirror​(java.lang.String annotationName)  
      protected java.util.List<? extends javax.lang.model.element.AnnotationMirror> getAnnotationsForType​(javax.lang.model.element.Element element)  
      protected java.lang.String getAnnotationTypeName​(javax.lang.model.element.AnnotationMirror annotationMirror)  
      protected io.micronaut.core.value.OptionalValues<?> getAnnotationValues​(javax.lang.model.element.Element originatingElement, javax.lang.model.element.Element member, java.lang.Class<?> annotationType)  
      protected java.lang.String getDeclaringType​(javax.lang.model.element.Element element)  
      protected java.lang.String getElementName​(javax.lang.model.element.Element element)  
      protected io.micronaut.inject.annotation.AnnotatedElementValidator getElementValidator()  
      protected java.lang.String getRepeatableName​(javax.lang.model.element.AnnotationMirror annotationMirror)  
      protected java.lang.String getRepeatableNameForType​(javax.lang.model.element.Element annotationType)  
      protected java.lang.annotation.RetentionPolicy getRetentionPolicy​(javax.lang.model.element.Element annotation)  
      protected javax.lang.model.element.Element getTypeForAnnotation​(javax.lang.model.element.AnnotationMirror annotationMirror)  
      boolean hasAnnotation​(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> ann)
      Checks if a method has an annotation.
      boolean hasAnnotation​(javax.lang.model.element.Element element, java.lang.String ann)
      Checks if a method has an annotation.
      static boolean hasAnnotation​(javax.lang.model.element.ExecutableElement method, java.lang.Class<? extends java.lang.annotation.Annotation> ann)
      Checks if a method has an annotation.
      protected boolean hasAnnotations​(javax.lang.model.element.Element element)  
      protected boolean hasSimpleAnnotation​(javax.lang.model.element.Element element, java.lang.String simpleName)  
      protected boolean isExcludedAnnotation​(javax.lang.model.element.Element element, java.lang.String annotationName)  
      protected boolean isInheritedAnnotation​(javax.lang.model.element.AnnotationMirror annotationMirror)  
      protected boolean isInheritedAnnotationType​(javax.lang.model.element.Element annotationType)  
      protected boolean isMethodOrClassElement​(javax.lang.model.element.Element element)  
      protected boolean isValidationRequired​(javax.lang.model.element.Element member)  
      protected java.util.Map<? extends javax.lang.model.element.Element,​?> readAnnotationDefaultValues​(java.lang.String annotationTypeName, javax.lang.model.element.Element element)  
      protected java.util.Map<? extends javax.lang.model.element.Element,​?> readAnnotationDefaultValues​(javax.lang.model.element.AnnotationMirror annotationMirror)  
      protected java.util.Map<? extends javax.lang.model.element.Element,​?> readAnnotationRawValues​(javax.lang.model.element.AnnotationMirror annotationMirror)  
      protected void readAnnotationRawValues​(javax.lang.model.element.Element originatingElement, java.lang.String annotationName, javax.lang.model.element.Element member, java.lang.String memberName, java.lang.Object annotationValue, java.util.Map<java.lang.CharSequence,​java.lang.Object> annotationValues)  
      protected java.lang.Object readAnnotationValue​(javax.lang.model.element.Element originatingElement, javax.lang.model.element.Element member, java.lang.String memberName, java.lang.Object annotationValue)  
      • Methods inherited from class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder

        addMutatedMetadata, annotate, build, build, buildDeclared, buildDeclared, buildForMethod, buildForParent, buildForParent, buildForParent, buildForParents, buildForParents, buildOverridden, clearMutated, copyToRuntime, getAnnotationMappers, getAnnotationTransformers, getMappedAnnotationNames, getMappedAnnotationPackages, isAnnotationMapped, isMetadataMutated, populateAnnotationData, populateAnnotationData, readNestedAnnotationValue, removeAnnotation, removeAnnotationIf, removeStereotype, validateAnnotationValue
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • JavaAnnotationMetadataBuilder

        public JavaAnnotationMetadataBuilder​(javax.lang.model.util.Elements elements,
                                             javax.annotation.processing.Messager messager,
                                             AnnotationUtils annotationUtils,
                                             ModelUtils modelUtils)
        Default constructor.
        Parameters:
        elements - The elementUtils
        messager - The messager
        annotationUtils - The annotation utils
        modelUtils - The model utils
    • Method Detail

      • getElementValidator

        @Nullable
        protected io.micronaut.inject.annotation.AnnotatedElementValidator getElementValidator()
        Overrides:
        getElementValidator in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • addError

        protected void addError​(@NonNull
                                javax.lang.model.element.Element originatingElement,
                                @NonNull
                                java.lang.String error)
        Specified by:
        addError in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • addWarning

        protected void addWarning​(@NonNull
                                  javax.lang.model.element.Element originatingElement,
                                  @NonNull
                                  java.lang.String warning)
        Specified by:
        addWarning in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getAnnotationMemberName

        protected java.lang.String getAnnotationMemberName​(javax.lang.model.element.Element member)
        Specified by:
        getAnnotationMemberName in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getRepeatableName

        @Nullable
        protected java.lang.String getRepeatableName​(javax.lang.model.element.AnnotationMirror annotationMirror)
        Specified by:
        getRepeatableName in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getRepeatableNameForType

        @Nullable
        protected java.lang.String getRepeatableNameForType​(javax.lang.model.element.Element annotationType)
        Specified by:
        getRepeatableNameForType in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getAnnotationMirror

        protected java.util.Optional<javax.lang.model.element.Element> getAnnotationMirror​(java.lang.String annotationName)
        Specified by:
        getAnnotationMirror in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • createVisitorContext

        protected io.micronaut.inject.visitor.VisitorContext createVisitorContext()
        Specified by:
        createVisitorContext in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getRetentionPolicy

        @NonNull
        protected java.lang.annotation.RetentionPolicy getRetentionPolicy​(@NonNull
                                                                          javax.lang.model.element.Element annotation)
        Specified by:
        getRetentionPolicy in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • isInheritedAnnotation

        protected boolean isInheritedAnnotation​(@NonNull
                                                javax.lang.model.element.AnnotationMirror annotationMirror)
        Specified by:
        isInheritedAnnotation in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • isInheritedAnnotationType

        protected boolean isInheritedAnnotationType​(@NonNull
                                                    javax.lang.model.element.Element annotationType)
        Specified by:
        isInheritedAnnotationType in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getAnnotationMembers

        protected java.util.Map<java.lang.String,​javax.lang.model.element.Element> getAnnotationMembers​(java.lang.String annotationType)
        Specified by:
        getAnnotationMembers in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • hasSimpleAnnotation

        protected boolean hasSimpleAnnotation​(javax.lang.model.element.Element element,
                                              java.lang.String simpleName)
        Specified by:
        hasSimpleAnnotation in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • isMethodOrClassElement

        protected boolean isMethodOrClassElement​(javax.lang.model.element.Element element)
        Specified by:
        isMethodOrClassElement in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getDeclaringType

        @NonNull
        protected java.lang.String getDeclaringType​(@NonNull
                                                    javax.lang.model.element.Element element)
        Specified by:
        getDeclaringType in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getTypeForAnnotation

        protected javax.lang.model.element.Element getTypeForAnnotation​(javax.lang.model.element.AnnotationMirror annotationMirror)
        Specified by:
        getTypeForAnnotation in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getAnnotationsForType

        protected java.util.List<? extends javax.lang.model.element.AnnotationMirror> getAnnotationsForType​(javax.lang.model.element.Element element)
        Specified by:
        getAnnotationsForType in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • isExcludedAnnotation

        protected boolean isExcludedAnnotation​(@NonNull
                                               javax.lang.model.element.Element element,
                                               @NonNull
                                               java.lang.String annotationName)
        Overrides:
        isExcludedAnnotation in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • buildHierarchy

        protected java.util.List<javax.lang.model.element.Element> buildHierarchy​(javax.lang.model.element.Element element,
                                                                                  boolean inheritTypeAnnotations,
                                                                                  boolean declaredOnly)
        Specified by:
        buildHierarchy in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • readAnnotationRawValues

        protected java.util.Map<? extends javax.lang.model.element.Element,​?> readAnnotationRawValues​(javax.lang.model.element.AnnotationMirror annotationMirror)
        Specified by:
        readAnnotationRawValues in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getAnnotationMember

        @Nullable
        protected javax.lang.model.element.Element getAnnotationMember​(javax.lang.model.element.Element originatingElement,
                                                                       java.lang.CharSequence member)
        Specified by:
        getAnnotationMember in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getAnnotationValues

        protected io.micronaut.core.value.OptionalValues<?> getAnnotationValues​(javax.lang.model.element.Element originatingElement,
                                                                                javax.lang.model.element.Element member,
                                                                                java.lang.Class<?> annotationType)
        Specified by:
        getAnnotationValues in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • readAnnotationRawValues

        protected void readAnnotationRawValues​(javax.lang.model.element.Element originatingElement,
                                               java.lang.String annotationName,
                                               javax.lang.model.element.Element member,
                                               java.lang.String memberName,
                                               java.lang.Object annotationValue,
                                               java.util.Map<java.lang.CharSequence,​java.lang.Object> annotationValues)
        Specified by:
        readAnnotationRawValues in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • isValidationRequired

        protected boolean isValidationRequired​(javax.lang.model.element.Element member)
        Specified by:
        isValidationRequired in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • readAnnotationValue

        protected java.lang.Object readAnnotationValue​(javax.lang.model.element.Element originatingElement,
                                                       javax.lang.model.element.Element member,
                                                       java.lang.String memberName,
                                                       java.lang.Object annotationValue)
        Specified by:
        readAnnotationValue in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • readAnnotationDefaultValues

        protected java.util.Map<? extends javax.lang.model.element.Element,​?> readAnnotationDefaultValues​(javax.lang.model.element.AnnotationMirror annotationMirror)
        Specified by:
        readAnnotationDefaultValues in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • readAnnotationDefaultValues

        protected java.util.Map<? extends javax.lang.model.element.Element,​?> readAnnotationDefaultValues​(java.lang.String annotationTypeName,
                                                                                                                javax.lang.model.element.Element element)
        Specified by:
        readAnnotationDefaultValues in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getAnnotationTypeName

        protected java.lang.String getAnnotationTypeName​(javax.lang.model.element.AnnotationMirror annotationMirror)
        Specified by:
        getAnnotationTypeName in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • getElementName

        protected java.lang.String getElementName​(javax.lang.model.element.Element element)
        Specified by:
        getElementName in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • hasAnnotation

        public boolean hasAnnotation​(javax.lang.model.element.Element element,
                                     java.lang.Class<? extends java.lang.annotation.Annotation> ann)
        Checks if a method has an annotation.
        Specified by:
        hasAnnotation in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
        Parameters:
        element - The method
        ann - The annotation to look for
        Returns:
        Whether if the method has the annotation
      • hasAnnotation

        public boolean hasAnnotation​(javax.lang.model.element.Element element,
                                     java.lang.String ann)
        Checks if a method has an annotation.
        Specified by:
        hasAnnotation in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
        Parameters:
        element - The method
        ann - The annotation to look for
        Returns:
        Whether if the method has the annotation
      • hasAnnotations

        protected boolean hasAnnotations​(javax.lang.model.element.Element element)
        Specified by:
        hasAnnotations in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<javax.lang.model.element.Element,​javax.lang.model.element.AnnotationMirror>
      • clearCaches

        public static void clearCaches()
        Clears any caches from the last compilation round.
      • hasAnnotation

        public static boolean hasAnnotation​(javax.lang.model.element.ExecutableElement method,
                                            java.lang.Class<? extends java.lang.annotation.Annotation> ann)
        Checks if a method has an annotation.
        Parameters:
        method - The method
        ann - The annotation to look for
        Returns:
        Whether if the method has the annotation