Class ScalaAnnotationMetadataBuilder

java.lang.Object
io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
io.micronaut.scala.processing.visitor.ScalaAnnotationMetadataBuilder

public final class ScalaAnnotationMetadataBuilder extends io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
Builds Micronaut annotation metadata from the reduced Scala compiler model.
  • Constructor Details

    • ScalaAnnotationMetadataBuilder

      public ScalaAnnotationMetadataBuilder(io.micronaut.inject.visitor.VisitorContext visitorContext)
  • Method Details

    • getElementValidator

      protected @Nullable io.micronaut.inject.annotation.AnnotatedElementValidator getElementValidator()
      Overrides:
      getElementValidator in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getAnnotationMappers

      protected <K extends Annotation> @Nullable List<io.micronaut.inject.annotation.AnnotationMapper<K>> getAnnotationMappers(String annotationName)
      Overrides:
      getAnnotationMappers in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getAnnotationTransformers

      protected <K extends Annotation> @Nullable List<io.micronaut.inject.annotation.AnnotationTransformer<K>> getAnnotationTransformers(String annotationName)
      Overrides:
      getAnnotationTransformers in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getAnnotationRemappers

      protected List<io.micronaut.inject.annotation.AnnotationRemapper> getAnnotationRemappers(String packageName)
      Overrides:
      getAnnotationRemappers in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • buildMetadata

      public io.micronaut.inject.annotation.MutableAnnotationMetadata buildMetadata(ScalaAnnotatedElementData element)
      Build metadata for a Scala model element.
      Parameters:
      element - The element
      Returns:
      The annotation metadata
    • getTypeForAnnotation

      protected Object getTypeForAnnotation(ScalaAnnotationData annotationMirror)
      Specified by:
      getTypeForAnnotation in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • hasAnnotation

      protected boolean hasAnnotation(Object element, Class<? extends Annotation> annotation)
      Specified by:
      hasAnnotation in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • hasAnnotation

      protected boolean hasAnnotation(Object element, String annotation)
      Specified by:
      hasAnnotation in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • hasAnnotations

      protected boolean hasAnnotations(Object element)
      Specified by:
      hasAnnotations in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getAnnotationTypeName

      protected String getAnnotationTypeName(ScalaAnnotationData annotationMirror)
      Specified by:
      getAnnotationTypeName in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getElementName

      protected String getElementName(Object element)
      Specified by:
      getElementName in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getAnnotationsForType

      protected List<? extends ScalaAnnotationData> getAnnotationsForType(Object element)
      Specified by:
      getAnnotationsForType in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • buildHierarchy

      protected List<Object> buildHierarchy(Object element, boolean inheritTypeAnnotations, boolean declaredOnly)
      Specified by:
      buildHierarchy in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • readAnnotationRawValues

      protected void readAnnotationRawValues(Object originatingElement, String annotationName, Object member, String memberName, Object annotationValue, Map<CharSequence, Object> annotationValues)
      Specified by:
      readAnnotationRawValues in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • readAnnotationRawValues

      protected void readAnnotationRawValues(Object originatingElement, String annotationName, Object member, String memberName, Object annotationValue, Map<CharSequence, Object> annotationValues, Map<String, Map<CharSequence, Object>> resolvedDefaults)
      Overrides:
      readAnnotationRawValues in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • isValidationRequired

      protected boolean isValidationRequired(Object member)
      Specified by:
      isValidationRequired in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • addError

      protected void addError(Object originatingElement, String error)
      Specified by:
      addError in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • addWarning

      protected void addWarning(Object originatingElement, String warning)
      Specified by:
      addWarning in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • readAnnotationValue

      protected Object readAnnotationValue(Object originatingElement, Object member, String annotationName, String memberName, Object annotationValue)
      Specified by:
      readAnnotationValue in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • readAnnotationDefaultValues

      protected Map<? extends Object, ?> readAnnotationDefaultValues(String annotationName, Object annotationType)
      Specified by:
      readAnnotationDefaultValues in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • readAnnotationDefaultValues

      protected Map<? extends Object, ?> readAnnotationDefaultValues(String annotationName, Object annotationType, boolean includeEmptyValues)
      The defaults an annotation type declares, by the same rule as the Java, Kotlin and Groovy builders: every member with a default is reported, whatever its shape, except that an empty string default is reported only when includeEmptyValues is set. The written metadata omits it to stay small, and AnnotationValue.stringValue answers empty for an absent member anyway; VisitorContext.getAnnotationDefaultValues asks for it, so that "no default" can be told apart from "the empty string".
      Overrides:
      readAnnotationDefaultValues in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • readAnnotationRawValues

      protected Map<? extends Object, ?> readAnnotationRawValues(ScalaAnnotationData annotationMirror)
      Specified by:
      readAnnotationRawValues in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getAnnotationValues

      protected <K extends Annotation> Optional<io.micronaut.core.annotation.AnnotationValue<K>> getAnnotationValues(Object originatingElement, Object member, Class<K> annotationType)
      Specified by:
      getAnnotationValues in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getAnnotationMemberName

      protected String getAnnotationMemberName(Object member)
      Specified by:
      getAnnotationMemberName in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getRepeatableName

      protected @Nullable String getRepeatableName(ScalaAnnotationData annotationMirror)
      Specified by:
      getRepeatableName in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getRepeatableContainerNameForType

      protected @Nullable String getRepeatableContainerNameForType(Object annotationType)
      Specified by:
      getRepeatableContainerNameForType in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getAnnotationMirror

      protected Optional<Object> getAnnotationMirror(String annotationName)
      Specified by:
      getAnnotationMirror in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getOriginatingClassName

      protected @Nullable String getOriginatingClassName(Object originatingElement)
      Specified by:
      getOriginatingClassName in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getAnnotationMember

      protected @Nullable Object getAnnotationMember(Object annotationElement, CharSequence member)
      Specified by:
      getAnnotationMember in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getVisitorContext

      protected io.micronaut.inject.visitor.VisitorContext getVisitorContext()
      Specified by:
      getVisitorContext in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • getRetentionPolicy

      protected RetentionPolicy getRetentionPolicy(Object annotation)
      Specified by:
      getRetentionPolicy in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>
    • isExcludedAnnotation

      protected boolean isExcludedAnnotation(Object element, String annotationName)
      Overrides:
      isExcludedAnnotation in class io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder<Object, ScalaAnnotationData>