Processorpublic abstract class AbstractProcessor extends Object implements Processor
The getter methods may issue warnings about noteworthy conditions using the facilities available after the processor has been initialized.
Subclasses are free to override the implementation and
specification of any of the methods in this class as long as the
general Processor
contract for that method is obeyed.
| 限定符和类型 | 字段 | 说明 |
|---|---|---|
protected ProcessingEnvironment |
processingEnv |
Processing environment providing by the tool framework.
|
| 限定符 | 构造器 | 说明 |
|---|---|---|
protected |
AbstractProcessor() |
Constructor for subclasses to call.
|
| 限定符和类型 | 方法 | 说明 |
|---|---|---|
Iterable<? extends Completion> |
getCompletions(Element element,
AnnotationMirror annotation,
ExecutableElement member,
String userText) |
Returns an empty iterable of completions.
|
Set<String> |
getSupportedAnnotationTypes() |
If the processor class is annotated with
SupportedAnnotationTypes, return an unmodifiable set with the
same set of strings as the annotation. |
Set<String> |
getSupportedOptions() |
If the processor class is annotated with
SupportedOptions, return an unmodifiable set with the same set
of strings as the annotation. |
SourceVersion |
getSupportedSourceVersion() |
If the processor class is annotated with
SupportedSourceVersion, return the source version in the
annotation. |
void |
init(ProcessingEnvironment processingEnv) |
Initializes the processor with the processing environment by
setting the
processingEnv field to the value of the
processingEnv argument. |
protected boolean |
isInitialized() |
|
abstract boolean |
process(Set<? extends TypeElement> annotations,
RoundEnvironment roundEnv) |
Processes a set of annotation types on type elements
originating from the prior round and returns whether or not
these annotation types are claimed by this processor.
|
protected ProcessingEnvironment processingEnv
public Set<String> getSupportedOptions()
SupportedOptions, return an unmodifiable set with the same set
of strings as the annotation. If the class is not so
annotated, an empty set is returned.getSupportedOptions 在接口中 ProcessorSupportedOptionspublic Set<String> getSupportedAnnotationTypes()
SupportedAnnotationTypes, return an unmodifiable set with the
same set of strings as the annotation. If the class is not so
annotated, an empty set is returned.getSupportedAnnotationTypes 在接口中 ProcessorSupportedAnnotationTypespublic SourceVersion getSupportedSourceVersion()
SupportedSourceVersion, return the source version in the
annotation. If the class is not so annotated, SourceVersion.RELEASE_6 is returned.getSupportedSourceVersion 在接口中 ProcessorSupportedSourceVersion,
ProcessingEnvironment.getSourceVersion()public void init(ProcessingEnvironment processingEnv)
processingEnv field to the value of the
processingEnv argument. An
IllegalStateException will be thrown if this method is called
more than once on the same object.init 在接口中 ProcessorprocessingEnv - environment to access facilities the tool framework
provides to the processorIllegalStateException - if this method is called more than once.public abstract boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv)
true is returned, the annotation types are claimed and subsequent
processors will not be asked to process them; if false
is returned, the annotation types are unclaimed and subsequent
processors may be asked to process them. A processor may
always return the same boolean value or may vary the result
based on chosen criteria.
The input set will be empty if the processor supports
"*" and the root elements have no annotations. A
Processor must gracefully handle an empty set of annotations.
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText)
getCompletions 在接口中 Processorelement - the element being annotatedannotation - the (perhaps partial) annotation being
applied to the elementmember - the annotation member to return possible completions foruserText - source code text to be completedprotected boolean isInitialized()
true if this object has been initialized,
false otherwise.