@SupportedOptions(value={"nolocations","annotations"}) @SupportedSourceVersion(value=RELEASE_8) public class AnnotationStatistics extends SourceChecker
javac -proc:only -processor org.checkerframework.common.util.count.AnnotationStatistics MyFile.java ...
You probably want to pipe the output through another program:
... | wc.
   ... | sort | uniq -c
   grep
 By default, this utility displays annotation locations only. The following two options may be used to adjust the output:
-Aannotations: prints information about the annotations
   -Anolocations: suppresses location output; only makes sense in conjunction with
       -Aannotations
 JavaCodeStatisticscurrentRoot, DETAILS_SEPARATOR, elementsWithSuppressedWarnings, errsOnLastExit, messager, messages, MSGS_FILE, parentChecker, SUPPRESS_ALL_KEY, trees, UNNEEDED_SUPPRESSION_KEY, upstreamCheckerNames, visitorprocessingEnv| Constructor and Description | 
|---|
AnnotationStatistics()  | 
| Modifier and Type | Method and Description | 
|---|---|
protected SourceVisitor<?,?> | 
createSourceVisitor()
Provides the  
SourceVisitor that the checker should use to scan input source trees. | 
AnnotationProvider | 
getAnnotationProvider()  | 
protected void | 
incrementCount(Name annoName)
Increment the number of times annotation with name  
annoName has appeared. | 
void | 
typeProcessingOver()
A method to be called once all the classes are processed and no error is reported. 
 | 
addOptions, createSupportedLintOptions, expandCFOptions, formatStackTrace, fullMessageOf, getBooleanOption, getBooleanOption, getChecker, getContext, getElementUtils, getLintOption, getLintOption, getMessages, getOption, getOption, getOptionConfiguration, getOptions, getProcessingEnvironment, getProperties, getStandardSuppressWarningsKeys, getSupportedAnnotationTypes, getSupportedLintOptions, getSupportedOptions, getSupportedSourceVersion, getSuppressWarningsKeys, getTreeUtils, getTypeUtils, getUpstreamCheckerNames, getVisitor, hasOption, init, initChecker, message, printMessage, printStats, processArg, report, setLintOption, setParentChecker, setProcessingEnvironment, setRoot, setSupportedLintOptions, shouldAddShutdownHook, shouldSkipDefs, shouldSkipDefs, shouldSkipUses, shouldSkipUses, shouldSuppressWarnings, shouldSuppressWarnings, shutdownHook, treeToFilePositionString, typeProcess, typeProcessingStart, useUncheckedCodeDefault, warnUnneededSuppressions, warnUnneedSuppressionsprocessgetCompletions, isInitializedpublic void typeProcessingOver()
AbstractTypeProcessorSubclasses may override this method to do any aggregate analysis (e.g. generate report, persistence) or resource deallocation.
If an error (a Java error or a processor error) is reported, this method is not guaranteed to be invoked.
typeProcessingOver in class AbstractTypeProcessorprotected void incrementCount(Name annoName)
annoName has appeared.protected SourceVisitor<?,?> createSourceVisitor()
SourceCheckerSourceVisitor that the checker should use to scan input source trees.createSourceVisitor in class SourceCheckerSourceVisitor to use to scan source treespublic AnnotationProvider getAnnotationProvider()
getAnnotationProvider in interface BaseContextgetAnnotationProvider in class SourceChecker