The annotation processor is the core engine to process annotations.
All the processing configuration (input classes, error handlers, etc...)
is provided by the ProcessingContext which can be either created from the
createContext method or through another mean. Once the ProcessingContext has
been initialized, it is passed to the process(ProcessingContext ctx) method which
triggers the annotation processing.
Each class accessible from the ProcessingContext.getInputScanner instance, will be
scanned for annotations.
Each annotation will then be processed by invoking the corresponding AnnotationHandler
from its annotation type.
The AnnotationProcessor can be configured by using the pushAnnotationHandler and
popAnnotationHandler which allow new AnnotationHandler instances to be registered and
unregistered for a particular annotation type.
Even without reconfiguring the AnnotationProcessor instance with the above
configuration methods, the AnnotationProcessor implementation cannot guarantee
to be thread safe, therefore, it is encouraged the make instanciation cheap
and users should not use the same instance concurrently.
|