Package org.glassfish.apf
Interface AnnotationHandler
-
@Contract public interface AnnotationHandlerThis 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. Each implementation of this interface must specify the annotation that it can handle usingAnnotationHandlerForannotation.- Author:
- Jerome Dochez
-
-
Field Summary
Fields Modifier and Type Field Description static StringANNOTATION_HANDLER_METADATA
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Class<? extends Annotation>getAnnotationType()Class<? extends Annotation>[]getTypeDependencies()HandlerProcessingResultprocessAnnotation(AnnotationInfo element)Process a particular annotation which type is the same as the one returned by @see getAnnotationType().
-
-
-
Field Detail
-
ANNOTATION_HANDLER_METADATA
static final String ANNOTATION_HANDLER_METADATA
- See Also:
- Constant Field Values
-
-
Method Detail
-
getAnnotationType
Class<? extends Annotation> getAnnotationType()
- Returns:
- the annotation type this annotation handler is handling
-
processAnnotation
HandlerProcessingResult processAnnotation(AnnotationInfo element) throws AnnotationProcessorException
Process a particular annotation which type is the same as the one returned by @see getAnnotationType(). All information pertinent to the annotation and its context is encapsulated in the passed AnnotationInfo instance.- Parameters:
element- the annotation information- Throws:
AnnotationProcessorException
-
getTypeDependencies
Class<? extends Annotation>[] getTypeDependencies()
- Returns:
- an array of annotation types this annotation handler would require to be processed (if present) before it processes it's own annotation type.
-
-