Class Processor
java.lang.Object
javax.annotation.processing.AbstractProcessor
org.inferred.freebuilder.processor.Processor
- All Implemented Interfaces:
Processor
Processor for the @
FreeBuilder annotation.
Processing is split into analysis (owned by the Analyser) and code generation (owned
by the GeneratedBuilder), for testability.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Analyserprivate final FeatureSetprivate static final ConcurrentMap<ProcessingEnvironment, Processor> Keep track of which processors have been registered to avoid double-processing if FreeBuilder ends up on the processor path twice.Fields inherited from class AbstractProcessor
processingEnv -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleaninthashCode()voidinit(ProcessingEnvironment processingEnv) booleanprocess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) Methods inherited from class AbstractProcessor
getCompletions, getSupportedOptions, isInitialized
-
Field Details
-
registeredProcessors
Keep track of which processors have been registered to avoid double-processing if FreeBuilder ends up on the processor path twice. While we catch the resulting Filer exceptions and convert them to warnings, it's still cleaner to issue a single NOTE-severity message. -
analyser
-
features
-
-
Constructor Details
-
Processor
public Processor() -
Processor
-
-
Method Details
-
getSupportedAnnotationTypes
- Specified by:
getSupportedAnnotationTypesin interfaceProcessor- Overrides:
getSupportedAnnotationTypesin classAbstractProcessor
-
getSupportedSourceVersion
- Specified by:
getSupportedSourceVersionin interfaceProcessor- Overrides:
getSupportedSourceVersionin classAbstractProcessor
-
init
- Specified by:
initin interfaceProcessor- Overrides:
initin classAbstractProcessor
-
process
- Specified by:
processin interfaceProcessor- Specified by:
processin classAbstractProcessor
-
equals
-
hashCode
-