Class AbstractClassCouplingCheck
java.lang.Object
com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
com.puppycrawl.tools.checkstyle.api.AbstractCheck
com.puppycrawl.tools.checkstyle.checks.metrics.AbstractClassCouplingCheck
- All Implemented Interfaces:
Configurable
,Contextualizable
- Direct Known Subclasses:
ClassDataAbstractionCouplingCheck
,ClassFanOutComplexityCheck
Base class for coupling calculation.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final class
Encapsulates information about class coupling.Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Pattern
Pattern to match brackets in a full type name.private final Deque<AbstractClassCouplingCheck.ClassContext>
Stack of class contexts.Class names to ignore.Package names to ignore.private static final char
A package separator - ".".Specify user-configured regular expressions to ignore classes.Specify user-configured class names to ignore.Specify user-configured packages to ignore.A map of (imported class name -> class name with package) pairs.private int
Specify the maximum threshold allowed.private String
Current file package. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractClassCouplingCheck
(int defaultMax) Creates new instance of the check. -
Method Summary
Modifier and TypeMethodDescriptionfinal void
Called before the starting to process a tree.private void
Restores previous context.private void
createNewClassContext
(String className, DetailAST ast) Creates new inner class context with given name and location.final int[]
Returns the default token a check is interested in.protected abstract String
Returns message key we use for log violations.private void
Restores previous context.void
leaveToken
(DetailAST ast) Called after all the child nodes have been process.private void
registerImport
(DetailAST imp) Registers given import.void
setExcludeClassesRegexps
(Pattern... from) Setter to specify user-configured regular expressions to ignore classes.final void
setExcludedClasses
(String... excludedClasses) Setter to specify user-configured class names to ignore.final void
setExcludedPackages
(String... excludedPackages) Setter to specify user-configured packages to ignore.final void
setMax
(int max) Setter to specify the maximum threshold allowed.private void
visitAnnotationType
(DetailAST annotationAST) Visit ANNOTATION literal and get its type to referenced classes of context.private void
visitClassDef
(DetailAST classDef) Creates new context for a given class.private void
visitLiteralNew
(DetailAST ast) Visits NEW token for the current class context.private void
Visits THROWS token for the current class context.private void
visitPackageDef
(DetailAST pkg) Stores package of current class we check.void
visitToken
(DetailAST ast) Called to process a token.private void
Visits type token for the current class context.Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
clearViolations, destroy, finishTree, getAcceptableTokens, getFileContents, getFilePath, getLine, getLineCodePoints, getLines, getRequiredTokens, getTabWidth, getTokenNames, getViolations, init, isCommentNodesRequired, log, log, log, setFileContents, setTabWidth, setTokens
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 Details
-
DOT
A package separator - ".".- See Also:
-
DEFAULT_EXCLUDED_CLASSES
Class names to ignore. -
DEFAULT_EXCLUDED_PACKAGES
Package names to ignore. -
BRACKET_PATTERN
Pattern to match brackets in a full type name. -
excludeClassesRegexps
Specify user-configured regular expressions to ignore classes. -
importedClassPackages
A map of (imported class name -> class name with package) pairs. -
classesContexts
Stack of class contexts. -
excludedClasses
Specify user-configured class names to ignore. -
excludedPackages
Specify user-configured packages to ignore. -
max
Specify the maximum threshold allowed. -
packageName
Current file package.
-
-
Constructor Details
-
AbstractClassCouplingCheck
Creates new instance of the check.- Parameters:
defaultMax
- default value for allowed complexity.
-
-
Method Details
-
getLogMessageId
Returns message key we use for log violations.- Returns:
- message key we use for log violations.
-
getDefaultTokens
Description copied from class:AbstractCheck
Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.- Specified by:
getDefaultTokens
in classAbstractCheck
- Returns:
- the default tokens
- See Also:
-
setMax
Setter to specify the maximum threshold allowed.- Parameters:
max
- allowed complexity.
-
setExcludedClasses
Setter to specify user-configured class names to ignore.- Parameters:
excludedClasses
- classes to ignore.
-
setExcludeClassesRegexps
Setter to specify user-configured regular expressions to ignore classes.- Parameters:
from
- array representing regular expressions of classes to ignore.
-
setExcludedPackages
Setter to specify user-configured packages to ignore.- Parameters:
excludedPackages
- packages to ignore.- Throws:
IllegalArgumentException
- if there are invalid identifiers among the packages.
-
beginTree
Description copied from class:AbstractCheck
Called before the starting to process a tree. Ideal place to initialize information that is to be collected whilst processing a tree.- Overrides:
beginTree
in classAbstractCheck
- Parameters:
ast
- the root of the tree
-
visitToken
Description copied from class:AbstractCheck
Called to process a token.- Overrides:
visitToken
in classAbstractCheck
- Parameters:
ast
- the token to process
-
leaveToken
Description copied from class:AbstractCheck
Called after all the child nodes have been process.- Overrides:
leaveToken
in classAbstractCheck
- Parameters:
ast
- the token leaving
-
visitPackageDef
Stores package of current class we check.- Parameters:
pkg
- package definition.
-
visitClassDef
Creates new context for a given class.- Parameters:
classDef
- class definition node.
-
leaveClassDef
Restores previous context. -
registerImport
Registers given import. This allows us to track imported classes.- Parameters:
imp
- import definition.
-
createNewClassContext
Creates new inner class context with given name and location.- Parameters:
className
- The class name.ast
- The class ast.
-
checkCurrentClassAndRestorePrevious
Restores previous context. -
visitType
Visits type token for the current class context.- Parameters:
ast
- TYPE token.
-
visitLiteralNew
Visits NEW token for the current class context.- Parameters:
ast
- NEW token.
-
visitLiteralThrows
Visits THROWS token for the current class context.- Parameters:
ast
- THROWS token.
-
visitAnnotationType
Visit ANNOTATION literal and get its type to referenced classes of context.- Parameters:
annotationAST
- Annotation ast.
-