Class AnnotationStatistics

All Implemented Interfaces:
Processor, OptionConfiguration

@SupportedOptions({"nolocations","annotations","annotationserror","annotationsummaryonly"}) @SupportedSourceVersion(RELEASE_8) public class AnnotationStatistics extends SourceChecker
An annotation processor for counting the annotations in a program and for listing the potential locations of annotations. To invoke it, use
 javac -proc:only -processor org.checkerframework.common.util.count.AnnotationStatistics MyFile.java ...
 

By default, this utility displays annotation locations only, but not the annotations themselves. Further, the ouput includes all annotations (including @Override, etc.), which is not very useful.

The following options may be used to adjust the output:

  • -Aannotations: prints the annotation name, the file that contains it, and whether it is in a signature or in a body
  • -Anolocations: suppresses location output; only makes sense in conjunction with -Aannotations
  • -Aannotationsummaryonly: with both of the above, only outputs a summary
  • -Aannotationserror: histogram is issued as a warning, not just printed

These use cases are not very useful, because they include all annotations including @Override, etc.

  • Output the locations of annotations, but not the annotations themselves: normal invocation, as above
  • Histogram of the locations of annotations, by location type: ... | sort | uniq -c
  • Total annotation count: ... | wc.
  • Count for only certain location types: use grep
See Also:
  • Constructor Details

    • AnnotationStatistics

      public AnnotationStatistics()
      Creates an AnnotationStatistics.
  • Method Details