Class AbstractImportControl
java.lang.Object
com.puppycrawl.tools.checkstyle.checks.imports.AbstractImportControl
- Direct Known Subclasses:
- FileImportControl,- PkgImportControl
Represents a tree of import rules for controlling whether packages or
 classes are allowed to be used. Each instance must have a single parent or
 be the root node.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprivate final AbstractImportControlThe parent.private final Deque<AbstractImportRule>List ofAbstractImportRuleobjects to check.private final MismatchStrategyStrategy in a case if matching allow/disallow rule was not found.
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedAbstractImportControl(AbstractImportControl parent, MismatchStrategy strategyOnMismatch) Construct a child node.
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidAdds anAbstractImportRuleto the node.checkAccess(String inPkg, String inFileName, String forImport) Returns whether a package or class is allowed to be imported.private AccessResultlocalCheckAccess(String inPkg, String inFileName, String forImport) Checks whether any of the rules for this node control access to a specified package or file.abstract AbstractImportControllocateFinest(String forPkg, String forFileName) Search down the tree to locate the finest match for a supplied package.protected abstract booleanmatchesExactly(String pkg, String fileName) Check for equality of this with pkg.
- 
Field Details- 
rulesList ofAbstractImportRuleobjects to check.
- 
parentThe parent. Null indicates we are the root node.
- 
strategyOnMismatchStrategy in a case if matching allow/disallow rule was not found.
 
- 
- 
Constructor Details- 
AbstractImportControlConstruct a child node.- Parameters:
- parent- the parent node.
- strategyOnMismatch- strategy in a case if matching allow/disallow rule was not found.
 
 
- 
- 
Method Details- 
locateFinestSearch down the tree to locate the finest match for a supplied package.- Parameters:
- forPkg- the package to search for.
- forFileName- the file name to search for.
- Returns:
- the finest match, or null if no match at all.
 
- 
matchesExactlyCheck for equality of this with pkg.- Parameters:
- pkg- the package to compare with.
- fileName- the file name to compare with.
- Returns:
- if it matches.
 
- 
addImportRuleAdds anAbstractImportRuleto the node.- Parameters:
- rule- the rule to be added.
 
- 
checkAccessReturns whether a package or class is allowed to be imported. The algorithm checks with the current node for a result, and if none is found then calls its parent looking for a match. This will recurse looking for match. If there is no clear result thenAccessResult.UNKNOWNis returned.- Parameters:
- inPkg- the package doing the import.
- inFileName- the file name doing the import.
- forImport- the import to check on.
- Returns:
- an AccessResult.
 
- 
localCheckAccessChecks whether any of the rules for this node control access to a specified package or file.- Parameters:
- inPkg- the package doing the import.
- inFileName- the file name doing the import.
- forImport- the import to check on.
- Returns:
- an AccessResult.
 
 
-