@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