Class AnnotationStatistics
java.lang.Object
javax.annotation.processing.AbstractProcessor
org.checkerframework.javacutil.AbstractTypeProcessor
org.checkerframework.framework.source.SourceChecker
org.checkerframework.common.util.count.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 ...
You probably want to pipe the output through another program:
- Total annotation count:
... | wc. - Breakdown by location type:
... | sort | uniq -c - Count for only certain location types: use
grep
By default, this utility displays annotation locations only. The following options may be used to adjust the output:
-Aannotations: prints information about the annotations, such as 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 obove, only outputs a summary-Aannotationserror: histogram is issued as a warning, not just printed
- See Also:
-
Field Summary
Fields inherited from class org.checkerframework.framework.source.SourceChecker
currentRoot, DETAILS_SEPARATOR, elements, elementsWithSuppressedWarnings, errsOnLastExit, javacErrored, messager, messagesProperties, MSGS_FILE, OPTION_SEPARATOR, parentChecker, SUPPRESS_ALL_MESSAGE_KEY, SUPPRESS_ALL_PREFIX, treePathCacher, trees, types, UNNEEDED_SUPPRESSION_KEY, upstreamCheckerNames, useAllcheckersPrefix, visitorFields inherited from class javax.annotation.processing.AbstractProcessor
processingEnv -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected SourceVisitor<?, ?> Provides theSourceVisitorthat the checker should use to scan input source trees.Returns the AnnotationProvider (the type factory) associated with this.protected voidincrementCount(Name annoName) Increment the number of times annotation with nameannoNamehas appeared.voidA method to be called once all the classes are processed.Methods inherited from class org.checkerframework.framework.source.SourceChecker
addOptions, createSupportedLintOptions, expandCFOptions, fullMessageOf, getBooleanOption, getBooleanOption, getElementUtils, getLintOption, getLintOption, getMessagesProperties, getOption, getOption, getOptionConfiguration, getOptions, getParentChecker, getPathToCompilationUnit, getProcessingEnvironment, getProperties, getStandardSuppressWarningsPrefixes, getStringsOption, getStringsOption, getSupportedAnnotationTypes, getSupportedLintOptions, getSupportedOptions, getSupportedSourceVersion, getSuppressWarningsPrefixes, getTreePathCacher, getTreeUtils, getTypeUtils, getUpstreamCheckerNames, getVisitor, getWarningMessagePrefix, hasOption, init, initChecker, message, message, messageKeyMatches, printOrStoreMessage, printOrStoreMessage, printStats, processErrorMessageArg, report, reportError, reportWarning, setLintOption, setParentChecker, setProcessingEnvironment, setRoot, setSupportedLintOptions, shouldAddShutdownHook, shouldSkipDefs, shouldSkipDefs, shouldSkipUses, shouldSkipUses, shouldSuppressWarnings, shouldSuppressWarnings, shouldSuppressWarnings, shutdownHook, typeProcess, typeProcessingStart, useConservativeDefault, warnUnneededSuppressions, warnUnneededSuppressionsMethods inherited from class org.checkerframework.javacutil.AbstractTypeProcessor
getCompilerLog, processMethods inherited from class javax.annotation.processing.AbstractProcessor
getCompletions, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.checkerframework.framework.util.OptionConfiguration
getStringsOption, getStringsOption
-
Constructor Details
-
AnnotationStatistics
public AnnotationStatistics()Creates an AnnotationStatistics.
-
-
Method Details
-
typeProcessingOver
public void typeProcessingOver()Description copied from class:AbstractTypeProcessorA method to be called once all the classes are processed.Subclasses may override this method to do any aggregate analysis (e.g. generate report, persistence) or resource deallocation.
Method
AbstractTypeProcessor.getCompilerLog()can be used to access the number of compiler errors.- Overrides:
typeProcessingOverin classAbstractTypeProcessor
-
incrementCount
Increment the number of times annotation with nameannoNamehas appeared. -
createSourceVisitor
Description copied from class:SourceCheckerProvides theSourceVisitorthat the checker should use to scan input source trees.- Specified by:
createSourceVisitorin classSourceChecker- Returns:
- a
SourceVisitorto use to scan source trees
-
getAnnotationProvider
Description copied from class:SourceCheckerReturns the AnnotationProvider (the type factory) associated with this.- Overrides:
getAnnotationProviderin classSourceChecker- Returns:
- the AnnotationProvider (the type factory) associated with this
-