checkers.util.debug
Class SignaturePrinter
java.lang.Object
javax.annotation.processing.AbstractProcessor
com.sun.source.util.AbstractTypeProcessor
checkers.util.debug.SignaturePrinter
- All Implemented Interfaces:
- Processor
@SupportedSourceVersion(value=RELEASE_7)
@SupportedAnnotationTypes(value="*")
@SupportedOptions(value="checker")
public class SignaturePrinter
extends AbstractTypeProcessor
Outputs the method signatures of a class with fully annotated types.
The class determines the effective annotations for a checker in source or
the classfile. Finding the effective annotations is useful for the
following purposes:
- Debugging annotations in classfile
- Debugging the default annotations that are implicitly added
by the checker
The class can be used in two possible ways, depending on the type file:
- From source: the class is to be used as an annotation processor
when reading annotations from source. It can be invoked via the command:
javac -processor SignaturePrinter <java files> ...
- From classfile: the class is to be used as an independent app
when reading annotations from classfile. It can be invoked via the command:
java SignaturePrinter <class name>
By default, only the annotations explicitly written by the user are emitted.
To view the default and effective annotations in a class that are associated
with a checker, the fully qualified name of the checker needs to be passed
as '-Achecker=' argument, e.g.
javac -processor SignaturePrinter
-Achecker=checkers.nullness.NullnessChecker JavaFile.java
SignaturePrinter
public SignaturePrinter()
init
public void init(ProcessingEnvironment env)
- Specified by:
init
in interface Processor
- Overrides:
init
in class AbstractTypeProcessor
typeProcess
public void typeProcess(TypeElement element,
TreePath p)
- Specified by:
typeProcess
in class AbstractTypeProcessor
printUsage
public static void printUsage()
main
public static void main(String[] args)