This interface defines the contract for annotation handlers
and the annotation processing engine. Each annotation handler
is registered for a particular annotation type and will be
called by the engine when such annotation type is encountered.
The AnnotationHandler is a stateless object, no state should
be stored, instead users should use the ProcessingContext.
Annotation can be defined or processed in random orders on a
particular type, however, a particular annotation may need
other annotation to be processed before itself in order to be
processed successfully. An annotation type can indicate through
the @see getAnnotations() method which annotation types should
be processed before itself. |