|
||||||||||
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()
Returns a description of why the receiver may be dysfunctional. |
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, 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 net.sourceforge.pmd.lang.java.ast.JavaParserVisitor
visit
in class AbstractJavaRule
public Object visit(ASTPackageDeclaration node, Object data)
visit
in interface net.sourceforge.pmd.lang.java.ast.JavaParserVisitor
visit
in class AbstractJavaRule
public Object visit(ASTImportDeclaration node, Object data)
visit
in interface net.sourceforge.pmd.lang.java.ast.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()
PropertySource
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 |