Class AbstractCheck
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
-
- com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
-
- com.puppycrawl.tools.checkstyle.api.AbstractCheck
-
- All Implemented Interfaces:
Configurable
,Contextualizable
- Direct Known Subclasses:
AbbreviationAsWordInNameCheck
,AbstractClassCouplingCheck
,AbstractClassNameCheck
,AbstractJavadocCheck
,AbstractNameCheck
,AbstractParenPadCheck
,AbstractSuperCheck
,AnnotationLocationCheck
,AnnotationOnSameLineCheck
,AnnotationUseStyleCheck
,AnonInnerLengthCheck
,ArrayTrailingCommaCheck
,ArrayTypeStyleCheck
,AvoidDoubleBraceInitializationCheck
,AvoidEscapedUnicodeCharactersCheck
,AvoidInlineConditionalsCheck
,AvoidNestedBlocksCheck
,AvoidNoArgumentSuperConstructorCallCheck
,AvoidStarImportCheck
,AvoidStaticImportCheck
,BooleanExpressionComplexityCheck
,ClassMemberImpliedModifierCheck
,CommentsIndentationCheck
,ConstructorsDeclarationGroupingCheck
,CovariantEqualsCheck
,CustomImportOrderCheck
,CyclomaticComplexityCheck
,DeclarationOrderCheck
,DefaultComesLastCheck
,DescendantTokenCheck
,DesignForExtensionCheck
,EmptyBlockCheck
,EmptyCatchBlockCheck
,EmptyForInitializerPadCheck
,EmptyForIteratorPadCheck
,EmptyLineSeparatorCheck
,EmptyStatementCheck
,EqualsAvoidNullCheck
,EqualsHashCodeCheck
,ExecutableStatementCountCheck
,ExplicitInitializationCheck
,FallThroughCheck
,FinalClassCheck
,FinalLocalVariableCheck
,FinalParametersCheck
,GenericWhitespaceCheck
,HiddenFieldCheck
,HideUtilityClassConstructorCheck
,IllegalCatchCheck
,IllegalImportCheck
,IllegalInstantiationCheck
,IllegalThrowsCheck
,IllegalTokenCheck
,IllegalTokenTextCheck
,IllegalTypeCheck
,ImportControlCheck
,ImportOrderCheck
,IndentationCheck
,InnerAssignmentCheck
,InnerTypeLastCheck
,InterfaceIsTypeCheck
,InterfaceMemberImpliedModifierCheck
,InvalidJavadocPositionCheck
,JavadocContentLocationCheck
,JavadocMethodCheck
,JavadocStyleCheck
,JavadocTypeCheck
,JavadocVariableCheck
,JavaNCSSCheck
,LambdaBodyLengthCheck
,LeftCurlyCheck
,MagicNumberCheck
,MatchXpathCheck
,MethodCountCheck
,MethodLengthCheck
,MethodParamPadCheck
,MissingCtorCheck
,MissingJavadocMethodCheck
,MissingJavadocPackageCheck
,MissingJavadocTypeCheck
,MissingNullCaseInSwitchCheck
,MissingOverrideCheck
,MissingSwitchDefaultCheck
,ModifiedControlVariableCheck
,ModifierOrderCheck
,MultipleStringLiteralsCheck
,MultipleVariableDeclarationsCheck
,MutableExceptionCheck
,NeedBracesCheck
,NestedForDepthCheck
,NestedIfDepthCheck
,NestedTryDepthCheck
,NoArrayTrailingCommaCheck
,NoCloneCheck
,NoCodeInFileCheck
,NoEnumTrailingCommaCheck
,NoFinalizerCheck
,NoLineWrapCheck
,NoWhitespaceAfterCheck
,NoWhitespaceBeforeCaseDefaultColonCheck
,NoWhitespaceBeforeCheck
,NPathComplexityCheck
,OneStatementPerLineCheck
,OneTopLevelClassCheck
,OperatorWrapCheck
,OuterTypeFilenameCheck
,OuterTypeNumberCheck
,OverloadMethodsDeclarationOrderCheck
,PackageAnnotationCheck
,PackageDeclarationCheck
,PackageNameCheck
,ParameterAssignmentCheck
,ParameterNumberCheck
,RecordComponentNumberCheck
,RedundantImportCheck
,RedundantModifierCheck
,RegexpCheck
,RegexpSinglelineJavaCheck
,RequireThisCheck
,ReturnCountCheck
,RightCurlyCheck
,SealedShouldHavePermitsListCheck
,SeparatorWrapCheck
,SimplifyBooleanExpressionCheck
,SimplifyBooleanReturnCheck
,SingleSpaceSeparatorCheck
,StringLiteralEqualityCheck
,SuppressWarningsCheck
,SuppressWarningsHolder
,ThrowsCountCheck
,TodoCommentCheck
,TrailingCommentCheck
,UncommentedMainCheck
,UnnecessaryParenthesesCheck
,UnnecessarySemicolonAfterOuterTypeDeclarationCheck
,UnnecessarySemicolonAfterTypeMemberDeclarationCheck
,UnnecessarySemicolonInEnumerationCheck
,UnnecessarySemicolonInTryWithResourcesCheck
,UnusedCatchParameterShouldBeUnnamedCheck
,UnusedImportsCheck
,UnusedLambdaParameterShouldBeUnnamedCheck
,UnusedLocalVariableCheck
,UpperEllCheck
,VariableDeclarationUsageDistanceCheck
,VisibilityModifierCheck
,WhenShouldBeUsedCheck
,WhitespaceAfterCheck
,WhitespaceAroundCheck
,WriteTagCheck
public abstract class AbstractCheck extends AbstractViolationReporter
The base class for checks.- See Also:
- Writing your own checks
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
AbstractCheck.FileContext
The actual context holder.-
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions
-
-
Field Summary
Fields Modifier and Type Field Description private ThreadLocal<AbstractCheck.FileContext>
context
The check context.private int
tabWidth
The tab width for column reporting.private Set<String>
tokens
The tokens the check is interested in.
-
Constructor Summary
Constructors Constructor Description AbstractCheck()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
beginTree(DetailAST rootAST)
Called before the starting to process a tree.void
clearViolations()
Clears the sorted set ofViolation
of the check.void
destroy()
Destroy the check.void
finishTree(DetailAST rootAST)
Called after finished processing a tree.abstract int[]
getAcceptableTokens()
The configurable token set.abstract int[]
getDefaultTokens()
Returns the default token a check is interested in.FileContents
getFileContents()
Deprecated.Usage of this method is no longer accepted.String
getFilePath()
Returns full path to the file.String
getLine(int index)
Returns the line associated with the tree.int[]
getLineCodePoints(int index)
Returns code point representation of file text from given line number.String[]
getLines()
Returns the lines associated with the tree.abstract int[]
getRequiredTokens()
The tokens that this check must be registered for.protected int
getTabWidth()
Get tab width to report audit events with.Set<String>
getTokenNames()
Returns the tokens registered for the check.SortedSet<Violation>
getViolations()
Returns the sorted set ofViolation
.void
init()
Initialize the check.boolean
isCommentNodesRequired()
Whether comment nodes are required or not.void
leaveToken(DetailAST ast)
Called after all the child nodes have been process.void
log(int lineNo, int colNo, String key, Object... args)
Log a message that has column information.void
log(int line, String key, Object... args)
Log a message that has no column information.void
log(DetailAST ast, String key, Object... args)
Helper method to log a Violation.void
setFileContents(FileContents contents)
Set the file contents associated with the tree.void
setTabWidth(int tabWidth)
Set the tab width to report audit events with.void
setTokens(String... strRep)
Adds a set of tokens the check is interested in.void
visitToken(DetailAST ast)
Called to process a token.-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
-
Methods inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
configure, contextualize, getConfiguration, setupChild
-
-
-
-
Field Detail
-
context
private final ThreadLocal<AbstractCheck.FileContext> context
The check context.
-
tabWidth
private int tabWidth
The tab width for column reporting. Default is uninitialized as the value is inherited from the parent module.
-
-
Constructor Detail
-
AbstractCheck
public AbstractCheck()
-
-
Method Detail
-
getDefaultTokens
public abstract int[] getDefaultTokens()
Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.- Returns:
- the default tokens
- See Also:
TokenTypes
-
getAcceptableTokens
public abstract int[] getAcceptableTokens()
The configurable token set. Used to protect Checks against malicious users who specify an unacceptable token set in the configuration file. The default implementation returns the check's default tokens.- Returns:
- the token set this check is designed for.
- See Also:
TokenTypes
-
getRequiredTokens
public abstract int[] getRequiredTokens()
The tokens that this check must be registered for.- Returns:
- the token set this must be registered for.
- See Also:
TokenTypes
-
isCommentNodesRequired
public boolean isCommentNodesRequired()
Whether comment nodes are required or not.- Returns:
- false as a default value.
-
setTokens
public final void setTokens(String... strRep)
Adds a set of tokens the check is interested in.- Parameters:
strRep
- the string representation of the tokens interested in
-
getTokenNames
public final Set<String> getTokenNames()
Returns the tokens registered for the check.- Returns:
- the set of token names
-
getViolations
public SortedSet<Violation> getViolations()
Returns the sorted set ofViolation
.- Returns:
- the sorted set of
Violation
.
-
clearViolations
public final void clearViolations()
Clears the sorted set ofViolation
of the check.
-
init
public void init()
Initialize the check. This is the time to verify that the check has everything required to perform its job.
-
destroy
public void destroy()
Destroy the check. It is being retired from service.
-
beginTree
public void beginTree(DetailAST rootAST)
Called before the starting to process a tree. Ideal place to initialize information that is to be collected whilst processing a tree.- Parameters:
rootAST
- the root of the tree
-
finishTree
public void finishTree(DetailAST rootAST)
Called after finished processing a tree. Ideal place to report on information collected whilst processing a tree.- Parameters:
rootAST
- the root of the tree
-
visitToken
public void visitToken(DetailAST ast)
Called to process a token.- Parameters:
ast
- the token to process
-
leaveToken
public void leaveToken(DetailAST ast)
Called after all the child nodes have been process.- Parameters:
ast
- the token leaving
-
setFileContents
public final void setFileContents(FileContents contents)
Set the file contents associated with the tree.- Parameters:
contents
- the manager
-
getFileContents
@Deprecated(since="9.3") public final FileContents getFileContents()
Deprecated.Usage of this method is no longer accepted. Please use AST based methods instead.Returns the file contents associated with the tree.- Returns:
- the file contents
-
getTabWidth
protected final int getTabWidth()
Get tab width to report audit events with.- Returns:
- the tab width to audit events with
-
setTabWidth
public final void setTabWidth(int tabWidth)
Set the tab width to report audit events with.- Parameters:
tabWidth
- anint
value
-
log
public final void log(int line, String key, Object... args)
Description copied from class:AbstractViolationReporter
Log a message that has no column information.- Specified by:
log
in classAbstractViolationReporter
- Parameters:
line
- the line number where the audit event was foundkey
- the message that describes the audit eventargs
- the details of the message- See Also:
MessageFormat
-
log
public final void log(int lineNo, int colNo, String key, Object... args)
Description copied from class:AbstractViolationReporter
Log a message that has column information.- Specified by:
log
in classAbstractViolationReporter
- Parameters:
lineNo
- the line number where the audit event was foundcolNo
- the column number where the audit event was foundkey
- the message that describes the audit eventargs
- the details of the message- See Also:
MessageFormat
-
log
public final void log(DetailAST ast, String key, Object... args)
Helper method to log a Violation.- Parameters:
ast
- a node to get line id column numbers associated with the violationkey
- key to locale violation formatargs
- arguments to format
-
getLines
public final String[] getLines()
Returns the lines associated with the tree.- Returns:
- the file contents
-
getLine
public final String getLine(int index)
Returns the line associated with the tree.- Parameters:
index
- index of the line- Returns:
- the line from the file contents
-
getFilePath
public final String getFilePath()
Returns full path to the file.- Returns:
- full path to file.
-
getLineCodePoints
public final int[] getLineCodePoints(int index)
Returns code point representation of file text from given line number.- Parameters:
index
- index of the line- Returns:
- the array of Unicode code points
-
-