Class SignaturePrinter

All Implemented Interfaces:
Processor

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:

  1. Debugging annotations in classfile
  2. 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:

  1. 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> ...

  2. 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=org.checkerframework.checker.nullness.NullnessChecker JavaFile.java