checkers.util.debug
Class SignaturePrinter

java.lang.Object
  extended by javax.annotation.processing.AbstractProcessor
      extended by com.sun.source.util.AbstractTypeProcessor
          extended by 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:

  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 JavaFile.java


Field Summary
Modifier and Type Field and Description
 
Fields inherited from class javax.annotation.processing.AbstractProcessor
processingEnv
 
Constructor Summary
Constructor and Description
SignaturePrinter()
           
 
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

SignaturePrinter

public SignaturePrinter()
Method Detail

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)