JavaParserVisitor
, net.sourceforge.pmd.lang.rule.ImmutableLanguage
, net.sourceforge.pmd.properties.PropertySource
, net.sourceforge.pmd.Rule
public class LoosePackageCouplingRule extends AbstractJavaRule
For example, supposed you have the following package hierarchy:
org.sample
org.sample.impl
org.sample.util
org.sample.SampleInterface
.
This rule can be used to ensure that all classes within the
org.sample
package and its sub-packages are not used outside of
the org.sample
package hierarchy. Further, the only allowed
usage outside of a class in the org.sample
hierarchy would be
via org.sample.SampleInterface
.
Modifier and Type | Field | Description |
---|---|---|
static net.sourceforge.pmd.properties.StringMultiProperty |
CLASSES_DESCRIPTOR |
|
static net.sourceforge.pmd.properties.StringMultiProperty |
PACKAGES_DESCRIPTOR |
Constructor | Description |
---|---|
LoosePackageCouplingRule() |
Modifier and Type | Method | Description |
---|---|---|
boolean |
checksNothing() |
|
java.lang.String |
dysfunctionReason() |
|
protected java.util.List<java.lang.String> |
getRestrictedPackages() |
|
protected boolean |
isAllowedClass(ASTImportDeclaration node) |
|
protected boolean |
isContainingPackage(java.lang.String pkg1,
java.lang.String pkg2) |
|
java.lang.Object |
visit(ASTCompilationUnit node,
java.lang.Object data) |
|
java.lang.Object |
visit(ASTImportDeclaration node,
java.lang.Object data) |
|
java.lang.Object |
visit(ASTPackageDeclaration node,
java.lang.Object data) |
apply, getDeclaringType, importsPackage, isQualifiedName, isSuppressed, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitAll
copyPropertyDescriptors, copyPropertyValues, definePropertyDescriptor, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, setProperty, useDefaultValueFor, usesDefaultValues
addExample, addRuleChainVisit, addRuleChainVisit, addViolation, addViolation, addViolation, addViolationWithMessage, addViolationWithMessage, addViolationWithMessage, deepCopy, deepCopyValuesTo, end, equals, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getName, getParserOptions, getPriority, getRuleChainVisits, getRuleClass, getRuleSetName, getSince, hashCode, isDeprecated, isDfa, isMultifile, isRuleChain, isTypeResolution, setDeprecated, setDescription, setDfa, setExternalInfoUrl, setLanguage, setMaximumLanguageVersion, setMessage, setMinimumLanguageVersion, setMultifile, setName, setPriority, setRuleClass, setRuleSetName, setSince, setTypeResolution, setUsesDFA, setUsesMultifile, setUsesTypeResolution, start, usesDFA, usesMultifile, usesRuleChain, usesTypeResolution
public static final net.sourceforge.pmd.properties.StringMultiProperty PACKAGES_DESCRIPTOR
public static final net.sourceforge.pmd.properties.StringMultiProperty CLASSES_DESCRIPTOR
public java.lang.Object visit(ASTCompilationUnit node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class AbstractJavaRule
public java.lang.Object visit(ASTPackageDeclaration node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class AbstractJavaRule
public java.lang.Object visit(ASTImportDeclaration node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class AbstractJavaRule
protected java.util.List<java.lang.String> getRestrictedPackages()
protected boolean isContainingPackage(java.lang.String pkg1, java.lang.String pkg2)
protected boolean isAllowedClass(ASTImportDeclaration node)
public boolean checksNothing()
public java.lang.String dysfunctionReason()
dysfunctionReason
in interface net.sourceforge.pmd.properties.PropertySource
dysfunctionReason
in class net.sourceforge.pmd.properties.AbstractPropertySource
PropertySource.dysfunctionReason()
Copyright © 2002–2018 PMD. All rights reserved.