Class JavaVisitorContext

java.lang.Object
io.micronaut.annotation.processing.visitor.JavaVisitorContext
All Implemented Interfaces:
io.micronaut.core.convert.ConversionServiceProvider, io.micronaut.core.convert.value.ConvertibleValues<Object>, io.micronaut.core.convert.value.MutableConvertibleValues<Object>, io.micronaut.core.value.ValueResolver<CharSequence>, io.micronaut.inject.visitor.BeanElementVisitorContext, io.micronaut.inject.visitor.VisitorContext, io.micronaut.inject.writer.ClassWriterOutputVisitor, Iterable<Map.Entry<String,Object>>

@Internal public final class JavaVisitorContext extends Object implements io.micronaut.inject.visitor.VisitorContext, io.micronaut.inject.visitor.BeanElementVisitorContext
The visitor context when visiting Java code.
Since:
1.0
  • Constructor Details

    • JavaVisitorContext

      public JavaVisitorContext(ProcessingEnvironment processingEnv, Messager messager, Elements elements, AnnotationUtils annotationUtils, Types types, ModelUtils modelUtils, GenericUtils genericUtils, Filer filer, io.micronaut.core.convert.value.MutableConvertibleValues<Object> visitorAttributes, io.micronaut.inject.visitor.TypeElementVisitor.VisitorKind visitorKind)
      The default constructor.
      Parameters:
      processingEnv - The processing environment
      messager - The messager
      elements - The elements
      annotationUtils - The annotation utils
      types - Type types
      modelUtils - The model utils
      genericUtils - The generic type utils
      filer - The filer
      visitorAttributes - The attributes
      visitorKind - The visitor kind
  • Method Details

    • getVisitorKind

      public io.micronaut.inject.visitor.TypeElementVisitor.VisitorKind getVisitorKind()
      Returns:
      The visitor kind
    • getProcessingEnv

      public ProcessingEnvironment getProcessingEnv()
      Returns:
      The processing environment
    • getClasspathResources

      @NonNull public @NonNull Iterable<URL> getClasspathResources(@NonNull @NonNull String path)
      Specified by:
      getClasspathResources in interface io.micronaut.inject.visitor.VisitorContext
    • getClassElement

      public Optional<io.micronaut.inject.ast.ClassElement> getClassElement(String name)
      Specified by:
      getClassElement in interface io.micronaut.inject.visitor.VisitorContext
    • getClassElement

      public Optional<io.micronaut.inject.ast.ClassElement> getClassElement(String name, io.micronaut.inject.ast.annotation.ElementAnnotationMetadataFactory annotationMetadataFactory)
      Specified by:
      getClassElement in interface io.micronaut.inject.visitor.VisitorContext
    • getClassElements

      @NonNull public @NonNull io.micronaut.inject.ast.ClassElement[] getClassElements(@NonNull @NonNull String aPackage, @NonNull @NonNull String... stereotypes)
      Specified by:
      getClassElements in interface io.micronaut.inject.visitor.VisitorContext
    • getElementFactory

      @NonNull public @NonNull JavaElementFactory getElementFactory()
      Specified by:
      getElementFactory in interface io.micronaut.inject.visitor.VisitorContext
    • getElementAnnotationMetadataFactory

      public JavaElementAnnotationMetadataFactory getElementAnnotationMetadataFactory()
      Specified by:
      getElementAnnotationMetadataFactory in interface io.micronaut.inject.visitor.VisitorContext
    • getExpressionCompilationContextFactory

      public io.micronaut.expressions.context.ExpressionCompilationContextFactory getExpressionCompilationContextFactory()
      Specified by:
      getExpressionCompilationContextFactory in interface io.micronaut.inject.visitor.VisitorContext
    • getAnnotationMetadataBuilder

      public JavaAnnotationMetadataBuilder getAnnotationMetadataBuilder()
      Specified by:
      getAnnotationMetadataBuilder in interface io.micronaut.inject.visitor.VisitorContext
    • info

      public void info(String message, @Nullable io.micronaut.inject.ast.Element element)
      Specified by:
      info in interface io.micronaut.inject.visitor.VisitorContext
    • info

      public void info(String message)
      Specified by:
      info in interface io.micronaut.inject.visitor.VisitorContext
    • fail

      public void fail(String message, @Nullable io.micronaut.inject.ast.Element element)
      Specified by:
      fail in interface io.micronaut.inject.visitor.VisitorContext
    • warn

      public void warn(String message, @Nullable io.micronaut.inject.ast.Element element)
      Specified by:
      warn in interface io.micronaut.inject.visitor.VisitorContext
    • warn

      public void warn(String message, @Nullable @Nullable Element element)
      Print warning message.
      Parameters:
      message - The message
      element - The element
      Since:
      4.0.0
    • visitClass

      public OutputStream visitClass(String classname, @Nullable io.micronaut.inject.ast.Element originatingElement) throws IOException
      Specified by:
      visitClass in interface io.micronaut.inject.writer.ClassWriterOutputVisitor
      Throws:
      IOException
    • visitClass

      public OutputStream visitClass(String classname, io.micronaut.inject.ast.Element... originatingElements) throws IOException
      Specified by:
      visitClass in interface io.micronaut.inject.writer.ClassWriterOutputVisitor
      Throws:
      IOException
    • visitServiceDescriptor

      public void visitServiceDescriptor(String type, String classname)
      Specified by:
      visitServiceDescriptor in interface io.micronaut.inject.writer.ClassWriterOutputVisitor
    • visitServiceDescriptor

      public void visitServiceDescriptor(String type, String classname, io.micronaut.inject.ast.Element originatingElement)
      Specified by:
      visitServiceDescriptor in interface io.micronaut.inject.writer.ClassWriterOutputVisitor
    • visitMetaInfFile

      public Optional<io.micronaut.inject.writer.GeneratedFile> visitMetaInfFile(String path, io.micronaut.inject.ast.Element... originatingElements)
      Specified by:
      visitMetaInfFile in interface io.micronaut.inject.writer.ClassWriterOutputVisitor
      Specified by:
      visitMetaInfFile in interface io.micronaut.inject.visitor.VisitorContext
    • visitGeneratedFile

      public Optional<io.micronaut.inject.writer.GeneratedFile> visitGeneratedFile(String path)
      Specified by:
      visitGeneratedFile in interface io.micronaut.inject.writer.ClassWriterOutputVisitor
      Specified by:
      visitGeneratedFile in interface io.micronaut.inject.visitor.VisitorContext
    • visitGeneratedFile

      public Optional<io.micronaut.inject.writer.GeneratedFile> visitGeneratedFile(String path, io.micronaut.inject.ast.Element... originatingElements)
      Specified by:
      visitGeneratedFile in interface io.micronaut.inject.writer.ClassWriterOutputVisitor
    • finish

      public void finish()
      Specified by:
      finish in interface io.micronaut.inject.writer.ClassWriterOutputVisitor
    • getMessager

      public Messager getMessager()
      The messager.
      Returns:
      The messager
    • getModelUtils

      public ModelUtils getModelUtils()
      The model utils.
      Returns:
      The model utils
    • getElements

      public Elements getElements()
      The elements.
      Returns:
      The elements
    • getAnnotationUtils

      public AnnotationUtils getAnnotationUtils()
      The annotation utils.
      Returns:
      The annotation utils
    • getTypes

      public Types getTypes()
      The types.
      Returns:
      The types
    • getGenericUtils

      public GenericUtils getGenericUtils()
      The generic utils object.
      Returns:
      The generic utils
    • getOptions

      public Map<String,String> getOptions()
      Java visitor context options from javac arguments and System.getProperties()

      System properties has priority over arguments.

      Specified by:
      getOptions in interface io.micronaut.inject.visitor.VisitorContext
      Returns:
      Java visitor context options for all visitors
      See Also:
    • put

      public io.micronaut.core.convert.value.MutableConvertibleValues<Object> put(CharSequence key, @Nullable @Nullable Object value)
      Specified by:
      put in interface io.micronaut.core.convert.value.MutableConvertibleValues<Object>
    • remove

      public io.micronaut.core.convert.value.MutableConvertibleValues<Object> remove(CharSequence key)
      Specified by:
      remove in interface io.micronaut.core.convert.value.MutableConvertibleValues<Object>
    • clear

      public io.micronaut.core.convert.value.MutableConvertibleValues<Object> clear()
      Specified by:
      clear in interface io.micronaut.core.convert.value.MutableConvertibleValues<Object>
    • names

      public Set<String> names()
      Specified by:
      names in interface io.micronaut.core.convert.value.ConvertibleValues<Object>
    • values

      public Collection<Object> values()
      Specified by:
      values in interface io.micronaut.core.convert.value.ConvertibleValues<Object>
    • get

      public <T> Optional<T> get(CharSequence name, io.micronaut.core.convert.ArgumentConversionContext<T> conversionContext)
      Specified by:
      get in interface io.micronaut.core.value.ValueResolver<CharSequence>
    • getGeneratedResources

      public Collection<String> getGeneratedResources()
      Specified by:
      getGeneratedResources in interface io.micronaut.inject.visitor.VisitorContext
    • addGeneratedResource

      public void addGeneratedResource(@NonNull @NonNull String resource)
      Specified by:
      addGeneratedResource in interface io.micronaut.inject.visitor.VisitorContext
    • getBeanElementBuilders

      @Internal public List<io.micronaut.inject.writer.AbstractBeanDefinitionBuilder> getBeanElementBuilders()
      Returns:
      Gets the produced bean definition builders.
    • addAssociatedBean

      public io.micronaut.inject.ast.beans.BeanElementBuilder addAssociatedBean(io.micronaut.inject.ast.Element originatingElement, io.micronaut.inject.ast.ClassElement type)
      Specified by:
      addAssociatedBean in interface io.micronaut.inject.visitor.BeanElementVisitorContext