Class SignaturePrinter
java.lang.Object
javax.annotation.processing.AbstractProcessor
org.checkerframework.javacutil.AbstractTypeProcessor
org.checkerframework.common.util.debug.SignaturePrinter
- All Implemented Interfaces:
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
-
Field Summary
Fields inherited from class javax.annotation.processing.AbstractProcessor
processingEnv -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidstatic voidvoidtypeProcess(TypeElement element, TreePath p) Processes a fully-analyzed class that contains a supported annotation (seeAbstractProcessor.getSupportedAnnotationTypes()).voidA method to be called once before the first call to typeProcess.Methods inherited from class org.checkerframework.javacutil.AbstractTypeProcessor
getCompilerLog, init, process, typeProcessingOverMethods inherited from class javax.annotation.processing.AbstractProcessor
getCompletions, getSupportedAnnotationTypes, getSupportedOptions, getSupportedSourceVersion, isInitialized
-
Constructor Details
-
SignaturePrinter
public SignaturePrinter()
-
-
Method Details
-
typeProcessingStart
public void typeProcessingStart()Description copied from class:AbstractTypeProcessorA method to be called once before the first call to typeProcess.Subclasses may override this method to do any initialization work.
- Overrides:
typeProcessingStartin classAbstractTypeProcessor
-
typeProcess
Description copied from class:AbstractTypeProcessorProcesses a fully-analyzed class that contains a supported annotation (seeAbstractProcessor.getSupportedAnnotationTypes()).The passed class is always valid type-checked Java code.
- Specified by:
typeProcessin 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
-