|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sourceforge.pmd.AbstractPropertySource
net.sourceforge.pmd.lang.rule.AbstractRule
net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
net.sourceforge.pmd.lang.java.rule.coupling.LoosePackageCouplingRule
public class LoosePackageCouplingRule
The loose package coupling Rule can be used to ensure coupling outside of a package hierarchy is minimized to all but an allowed set of classes from within the package hierarchy.
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
.
Field Summary | |
---|---|
static StringMultiProperty |
CLASSES_DESCRIPTOR
|
static StringMultiProperty |
PACKAGES_DESCRIPTOR
|
Fields inherited from class net.sourceforge.pmd.AbstractPropertySource |
---|
propertyDescriptors, propertyValuesByDescriptor |
Fields inherited from interface net.sourceforge.pmd.Rule |
---|
VIOLATION_SUPPRESS_REGEX_DESCRIPTOR, VIOLATION_SUPPRESS_XPATH_DESCRIPTOR |
Constructor Summary | |
---|---|
LoosePackageCouplingRule()
|
Method Summary | |
---|---|
boolean |
checksNothing()
|
String |
dysfunctionReason()
|
protected List<String> |
getRestrictedPackages()
|
protected boolean |
isAllowedClass(ASTImportDeclaration node)
|
protected boolean |
isContainingPackage(String pkg1,
String pkg2)
|
Object |
visit(ASTCompilationUnit node,
Object data)
|
Object |
visit(ASTImportDeclaration node,
Object data)
|
Object |
visit(ASTPackageDeclaration node,
Object data)
|
Methods inherited from class net.sourceforge.pmd.lang.java.rule.AbstractJavaRule |
---|
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, visitAll |
Methods inherited from class net.sourceforge.pmd.AbstractPropertySource |
---|
copyPropertyDescriptors, copyPropertyValues, definePropertyDescriptor, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, useDefaultValueFor, usesDefaultValues |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface net.sourceforge.pmd.PropertySource |
---|
definePropertyDescriptor, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, useDefaultValueFor, usesDefaultValues |
Field Detail |
---|
public static final StringMultiProperty PACKAGES_DESCRIPTOR
public static final StringMultiProperty CLASSES_DESCRIPTOR
Constructor Detail |
---|
public LoosePackageCouplingRule()
Method Detail |
---|
public Object visit(ASTCompilationUnit node, Object data)
visit
in interface JavaParserVisitor
visit
in class AbstractJavaRule
public Object visit(ASTPackageDeclaration node, Object data)
visit
in interface JavaParserVisitor
visit
in class AbstractJavaRule
public Object visit(ASTImportDeclaration node, Object data)
visit
in interface JavaParserVisitor
visit
in class AbstractJavaRule
protected List<String> getRestrictedPackages()
protected boolean isContainingPackage(String pkg1, String pkg2)
protected boolean isAllowedClass(ASTImportDeclaration node)
public boolean checksNothing()
public String dysfunctionReason()
dysfunctionReason
in interface PropertySource
dysfunctionReason
in class AbstractPropertySource
PropertySource.dysfunctionReason()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |