Class SignaturePrinter
- java.lang.Object
-
- javax.annotation.processing.AbstractProcessor
-
- org.checkerframework.javacutil.AbstractTypeProcessor
-
- org.checkerframework.common.util.debug.SignaturePrinter
-
- All Implemented Interfaces:
javax.annotation.processing.Processor
@SupportedSourceVersion(RELEASE_8) @SupportedAnnotationTypes("*") @SupportedOptions("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>
-Achecker=
argument, e.g.javac -processor SignaturePrinter -Achecker=org.checkerframework.checker.nullness.NullnessChecker JavaFile.java
-
-
Constructor Summary
Constructors Constructor Description SignaturePrinter()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
main(java.lang.String[] args)
static void
printUsage()
void
typeProcess(javax.lang.model.element.TypeElement element, com.sun.source.util.TreePath p)
Processes a fully-analyzed class that contains a supported annotation (seeAbstractProcessor.getSupportedAnnotationTypes()
).void
typeProcessingStart()
A method to be called once before the first call to typeProcess.-
Methods inherited from class org.checkerframework.javacutil.AbstractTypeProcessor
getCompilerLog, init, process, typeProcessingOver
-
-
-
-
Method Detail
-
typeProcessingStart
public void typeProcessingStart()
Description copied from class:AbstractTypeProcessor
A method to be called once before the first call to typeProcess.Subclasses may override this method to do any initialization work.
- Overrides:
typeProcessingStart
in classAbstractTypeProcessor
-
typeProcess
public void typeProcess(javax.lang.model.element.TypeElement element, com.sun.source.util.TreePath p)
Description copied from class:AbstractTypeProcessor
Processes a fully-analyzed class that contains a supported annotation (seeAbstractProcessor.getSupportedAnnotationTypes()
).The passed class is always valid type-checked Java code.
- Specified by:
typeProcess
in classAbstractTypeProcessor
- Parameters:
element
- element of the analyzed classp
- the tree path to the element, with the leaf being aClassTree
-
printUsage
public static void printUsage()
-
main
public static void main(java.lang.String[] args)
-
-