Package com.puppycrawl.tools.checkstyle
Class TreeWalker
java.lang.Object
com.puppycrawl.tools.checkstyle.api.AutomaticBean
com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck
com.puppycrawl.tools.checkstyle.TreeWalker
- All Implemented Interfaces:
Configurable,Contextualizable,ExternalResourceHolder,FileSetCheck
Responsible for walking an abstract syntax tree and notifying interested
checks at each each node.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
AutomaticBean.OutputStreamOptions -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ContextContext of child components.private final Set<AbstractCheck> Registered comment checks.private final Set<TreeWalkerFilter> The ast filters.private ModuleFactoryA factory for creating submodules (i.e.private final Set<AbstractCheck> Registered ordinary checks, that don't use comment nodes.private final Map<Integer, Set<AbstractCheck>> Maps from token name to comment checks.private final Map<Integer, Set<AbstractCheck>> Maps from token name to ordinary checks.The sorted set of violations. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static SortedSet<AbstractCheck> Creates a newSortedSetwith a deterministic order based on the Check's name before the default ordering.voiddestroy()Cleans up the object.voidProvides a hook to finish the part of this component's setup that was not handled by the bean introspection.Returns a set of external configuration resource locations which are used by the module.getFilteredViolations(String fileName, FileContents fileContents, DetailAST rootAST) Returns filtered set ofViolation.private Collection<AbstractCheck> getListOfChecks(DetailAST ast, TreeWalker.AstState astState) Method returns list of checks.private voidnotifyBegin(DetailAST rootAST, FileContents contents, TreeWalker.AstState astState) Notify checks that we are about to begin walking a tree.private voidnotifyEnd(DetailAST rootAST, TreeWalker.AstState astState) Notify checks that we have finished walking a tree.private voidnotifyLeave(DetailAST ast, TreeWalker.AstState astState) Notify checks that leaving a node.private voidnotifyVisit(DetailAST ast, TreeWalker.AstState astState) Notify checks that visiting a node.protected voidprocessFiltered(File file, FileText fileText) Called to process a file that matches the specified file extensions.private voidprocessIter(DetailAST root, TreeWalker.AstState astState) Processes a node calling interested checks at each node.private voidregisterCheck(int tokenId, AbstractCheck check) Register a check for a specified token id.private voidregisterCheck(AbstractCheck check) Register a check for a given configuration.voidsetModuleFactory(ModuleFactory moduleFactory) Sets the module factory for creating child modules (Checks).voidsetupChild(Configuration childConf) Called by configure() for every child of this component's Configuration.private voidwalk(DetailAST ast, FileContents contents, TreeWalker.AstState astState) Initiates the walk of an AST.Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck
addViolations, beginProcessing, finishProcessing, fireErrors, getFileContents, getFileExtensions, getMessageDispatcher, getTabWidth, getViolations, init, log, log, process, setFileContents, setFileExtensions, setMessageDispatcher, setTabWidthMethods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityMethods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, getConfigurationMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.puppycrawl.tools.checkstyle.api.Configurable
configureMethods inherited from interface com.puppycrawl.tools.checkstyle.api.Contextualizable
contextualize
-
Field Details
-
tokenToOrdinaryChecks
Maps from token name to ordinary checks. -
tokenToCommentChecks
Maps from token name to comment checks. -
ordinaryChecks
Registered ordinary checks, that don't use comment nodes. -
commentChecks
Registered comment checks. -
filters
The ast filters. -
violations
The sorted set of violations. -
childContext
Context of child components. -
moduleFactory
A factory for creating submodules (i.e. the Checks)
-
-
Constructor Details
-
TreeWalker
public TreeWalker()Creates a newTreeWalkerinstance.
-
-
Method Details
-
setModuleFactory
Sets the module factory for creating child modules (Checks).- Parameters:
moduleFactory- the factory
-
finishLocalSetup
public void finishLocalSetup()Description copied from class:AutomaticBeanProvides a hook to finish the part of this component's setup that was not handled by the bean introspection.The default implementation does nothing.
- Overrides:
finishLocalSetupin classAbstractViolationReporter
-
setupChild
Called by configure() for every child of this component's Configuration.The default implementation throws
Creates child module.CheckstyleExceptionifchildConfisnullbecause it doesn't support children. It must be overridden to validate and support children that are wanted.- Overrides:
setupChildin classAutomaticBean- Parameters:
childConf- a child of this component's Configuration- Throws:
CheckstyleException- if there is a configuration error.- See Also:
-
processFiltered
Description copied from class:AbstractFileSetCheckCalled to process a file that matches the specified file extensions.- Specified by:
processFilteredin classAbstractFileSetCheck- Parameters:
file- the file to be processedfileText- the contents of the file.- Throws:
CheckstyleException- if error condition within Checkstyle occurs.
-
getFilteredViolations
private SortedSet<Violation> getFilteredViolations(String fileName, FileContents fileContents, DetailAST rootAST) Returns filtered set ofViolation.- Parameters:
fileName- path to the filefileContents- the contents of the filerootAST- root AST elementDetailASTof the file- Returns:
- filtered set of violations
-
registerCheck
Register a check for a given configuration.- Parameters:
check- the check to register- Throws:
CheckstyleException- if an error occurs
-
registerCheck
Register a check for a specified token id.- Parameters:
tokenId- the id of the tokencheck- the check to register- Throws:
CheckstyleException- if Check is misconfigured
-
walk
Initiates the walk of an AST.- Parameters:
ast- the root ASTcontents- the contents of the file the AST was generated from.astState- state of AST.
-
notifyBegin
Notify checks that we are about to begin walking a tree.- Parameters:
rootAST- the root of the tree.contents- the contents of the file the AST was generated from.astState- state of AST.
-
notifyEnd
Notify checks that we have finished walking a tree.- Parameters:
rootAST- the root of the tree.astState- state of AST.
-
notifyVisit
Notify checks that visiting a node.- Parameters:
ast- the node to notify for.astState- state of AST.
-
notifyLeave
Notify checks that leaving a node.- Parameters:
ast- the node to notify forastState- state of AST.
-
getListOfChecks
Method returns list of checks.- Parameters:
ast- the node to notify forastState- state of AST.- Returns:
- list of visitors
-
destroy
public void destroy()Description copied from interface:FileSetCheckCleans up the object.- Specified by:
destroyin interfaceFileSetCheck- Overrides:
destroyin classAbstractFileSetCheck
-
getExternalResourceLocations
Description copied from interface:ExternalResourceHolderReturns a set of external configuration resource locations which are used by the module. ATTENTION! If 'getExternalResourceLocations()' return null, there will beNullPointerExceptioninChecker. Such behaviour will signal that your module (check or filter) is designed incorrectly. It make sense to return an empty set from 'getExternalResourceLocations()' only for composite modules likeTreeWalker.- Specified by:
getExternalResourceLocationsin interfaceExternalResourceHolder- Returns:
- a set of external configuration resource locations which are used by the module.
-
processIter
Processes a node calling interested checks at each node. Uses iterative algorithm.- Parameters:
root- the root of tree for processastState- state of AST.
-
createNewCheckSortedSet
Creates a newSortedSetwith a deterministic order based on the Check's name before the default ordering.- Returns:
- The new
SortedSet.
-