Class RootProcessor

  • All Implemented Interfaces:
    javax.annotation.processing.Processor

    @IncrementalAnnotationProcessor(DYNAMIC)
    @AutoService(javax.annotation.processing.Processor.class)
    public final class RootProcessor
    extends BaseProcessor
    Processor that outputs dagger components based on transitive build deps.
    • Constructor Detail

      • RootProcessor

        public RootProcessor()
    • Method Detail

      • init

        public void init​(javax.annotation.processing.ProcessingEnvironment processingEnvironment)
        Specified by:
        init in interface javax.annotation.processing.Processor
        Overrides:
        init in class BaseProcessor
      • additionalProcessingOptions

        public com.google.common.collect.ImmutableSet<java.lang.String> additionalProcessingOptions()
        Description copied from class: BaseProcessor
        Returns additional processing options that should only be applied for a single processor.
        Overrides:
        additionalProcessingOptions in class BaseProcessor
      • getSupportedAnnotationTypes

        public com.google.common.collect.ImmutableSet<java.lang.String> getSupportedAnnotationTypes()
        Specified by:
        getSupportedAnnotationTypes in interface javax.annotation.processing.Processor
        Overrides:
        getSupportedAnnotationTypes in class javax.annotation.processing.AbstractProcessor
      • processEach

        public void processEach​(javax.lang.model.element.TypeElement annotation,
                                javax.lang.model.element.Element element)
                         throws java.lang.Exception
        Description copied from class: BaseProcessor
        Called for each element in a round that uses a supported annotation. Note that an exception can be thrown for each element in the round. This is usually preferred over throwing only the first exception in a round. Only throwing the first exception in the round can lead to flaky errors that are dependent on the non-deterministic ordering that the elements are processed in.
        Overrides:
        processEach in class BaseProcessor
        Throws:
        java.lang.Exception
      • postRoundProcess

        public void postRoundProcess​(javax.annotation.processing.RoundEnvironment roundEnv)
                              throws java.lang.Exception
        Description copied from class: BaseProcessor
        Used to perform post processing at the end of a round. This is especially useful for handling additional processing that depends on aggregate data, that cannot be handled in #processEach().

        Note: this will not be called if an exception is thrown during #processEach() -- if we have already detected errors on an annotated element, performing post processing on an aggregate will just produce more (perhaps non-deterministic) errors.

        Overrides:
        postRoundProcess in class BaseProcessor
        Throws:
        java.lang.Exception