Package dagger.spi

Interface BindingGraphPlugin


  • public interface BindingGraphPlugin
    A pluggable visitor for BindingGraph.

    Note: This is still experimental and will change.

    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default void initElements​(javax.lang.model.util.Elements elements)
      Initializes this plugin with a Elements instance.
      default void initFiler​(javax.annotation.processing.Filer filer)
      Initializes this plugin with a Filer that it can use to write Java or other files based on the binding graph.
      default void initOptions​(java.util.Map<java.lang.String,​java.lang.String> options)
      Initializes this plugin with a filtered view of the options passed on the javac command-line for all keys from supportedOptions().
      default void initTypes​(javax.lang.model.util.Types types)
      Initializes this plugin with a Types instance.
      default void onPluginEnd()
      Perform any extra work after the plugin finished all its visiting.
      default java.lang.String pluginName()
      A distinguishing name of the plugin that will be used in diagnostics printed to the Messager.
      default java.util.Set<java.lang.String> supportedOptions()
      Returns the annotation-processing options that this plugin uses to configure behavior.
      void visitGraph​(BindingGraph bindingGraph, DiagnosticReporter diagnosticReporter)
      Called once for each valid root binding graph encountered by the Dagger processor.
    • Method Detail

      • visitGraph

        void visitGraph​(BindingGraph bindingGraph,
                        DiagnosticReporter diagnosticReporter)
        Called once for each valid root binding graph encountered by the Dagger processor. May report diagnostics using diagnosticReporter.
      • initFiler

        default void initFiler​(javax.annotation.processing.Filer filer)
        Initializes this plugin with a Filer that it can use to write Java or other files based on the binding graph. This will be called once per instance of this plugin, before any graph is visited.
        See Also:
        ProcessingEnvironment.getFiler()
      • initTypes

        default void initTypes​(javax.lang.model.util.Types types)
        Initializes this plugin with a Types instance. This will be called once per instance of this plugin, before any graph is visited.
        See Also:
        ProcessingEnvironment.getTypeUtils()
      • initElements

        default void initElements​(javax.lang.model.util.Elements elements)
        Initializes this plugin with a Elements instance. This will be called once per instance of this plugin, before any graph is visited.
        See Also:
        ProcessingEnvironment.getElementUtils()
      • initOptions

        default void initOptions​(java.util.Map<java.lang.String,​java.lang.String> options)
        Initializes this plugin with a filtered view of the options passed on the javac command-line for all keys from supportedOptions(). This will be called once per instance of this plugin, before any graph is visited.
        See Also:
        ProcessingEnvironment.getOptions()
      • supportedOptions

        default java.util.Set<java.lang.String> supportedOptions()
        Returns the annotation-processing options that this plugin uses to configure behavior.
        See Also:
        Processor.getSupportedOptions()
      • pluginName

        default java.lang.String pluginName()
        A distinguishing name of the plugin that will be used in diagnostics printed to the Messager. By default, the fully qualified name of the plugin is used.
      • onPluginEnd

        default void onPluginEnd()
        Perform any extra work after the plugin finished all its visiting. This will be called once per instance of this plugin, after all graphs were visited