Class SignaturePrinter

  extended by javax.annotation.processing.AbstractProcessor
      extended by com.sun.source.util.AbstractTypeProcessor
          extended by checkers.util.debug.SignaturePrinter
All Implemented Interfaces:

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:

  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=checkers.nullness.NullnessChecker

Field Summary
Modifier and Type Field and Description
Fields inherited from class javax.annotation.processing.AbstractProcessor
Constructor Summary
Constructor and Description
Method Summary
Modifier and Type Method and Description
 void init(ProcessingEnvironment env)
static void main(String[] args)
static void printUsage()
 void typeProcess(TypeElement element, TreePath p)
Methods inherited from class com.sun.source.util.AbstractTypeProcessor
process, typeProcessingOver
Methods inherited from class javax.annotation.processing.AbstractProcessor
getCompletions, getSupportedAnnotationTypes, getSupportedOptions, getSupportedSourceVersion, isInitialized
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public SignaturePrinter()
Method Detail


public void init(ProcessingEnvironment env)
Specified by:
init in interface Processor
init in class AbstractTypeProcessor


public void typeProcess(TypeElement element,
                        TreePath p)
Specified by:
typeProcess in class AbstractTypeProcessor


public static void printUsage()


public static void main(String[] args)