Class JavaAnnotationProcessorDescriptionArg

    • Method Detail

      • getProcessorClass

        public Optional<String> getProcessorClass()
        Returns:
        The value of the processorClass attribute
      • getProcessorClasses

        public com.google.common.collect.ImmutableSet<String> getProcessorClasses()
        Returns:
        The value of the processorClasses attribute
      • isIsolateClassLoader

        public boolean isIsolateClassLoader()
        A value of false indicates that the plugin will not use a shared class loader to be loaded. This should be true if the same instance of the plugin has not support to run concurrently multiple times for different javac calls.

        Defaults to false because that's the "safe" value and optimizes build time.

        Specified by:
        isIsolateClassLoader in interface JavacPluginArgs
      • isDoesNotAffectAbi

        public boolean isDoesNotAffectAbi()
        A value of false indicates that the plugin either generates classes that are intended for use outside of the code being processed or modifies bytecode in a way that modifies ABI. Plugins that affect the ABI of the rule in which they run must be run during ABI generation from source.

        Defaults to false because that's the "safe" value. When migrating to ABI generation from source, having as few ABI-affecting plugins as possible will yield the fastest ABI generation.

        Specified by:
        isDoesNotAffectAbi in interface JavacPluginArgs
      • isSupportsAbiGenerationFromSource

        public boolean isSupportsAbiGenerationFromSource()
        If true, allows ABI-affecting plugins to run during ABI generation from source. To run during ABI generation from source, a plugin must meet all of the following criteria:
        • Uses only the public APIs from JSR-269 (for annotation processing). Access to the Compiler Tree API may also be possible via a Buck support library.
          Does not require details about types beyond those being compiled as a general rule. There are ways to ensure type information is available on a case by case basis, at some performance cost.
        Defaults to false because that's the "safe" value. When migrating to ABI generation from source, having as many ABI-affecting plugins as possible running during ABI generation will result in the flattest build graph.
Specified by:
isSupportsAbiGenerationFromSource in interface JavacPluginArgs