jdepend.framework
Class DependencyConstraint
java.lang.Object
|
+--jdepend.framework.DependencyConstraint
public class DependencyConstraint
extends java.lang.Object
The
DependencyConstraint
class is a constraint
that tests whether two package-dependency graphs are
equivalent.
This class is useful for writing package dependency
assertions (e.g. JUnit). For example, the following
JUnit test will ensure that the 'ejb' and 'web' packages
only depend upon the 'util' package, and no others:
public void testDependencyConstraint() {
JDepend jdepend = new JDepend();
jdepend.addDirectory("/path/to/classes");
Collection analyzedPackages = jdepend.analyze();
DependencyConstraint constraint = new DependencyConstraint();
JavaPackage ejb = constraint.addPackage("com.xyz.ejb");
JavaPackage web = constraint.addPackage("com.xyz.web");
JavaPackage util = constraint.addPackage("com.xyz.util");
ejb.dependsUpon(util);
web.dependsUpon(util);
assertEquals("Dependency mismatch",
true, constraint.match(analyzedPackages));
- (mike@clarkware.com)
- Clarkware Consulting, Inc.
DependencyConstraint
public DependencyConstraint()
Constructs a DependencyConstraint
instance.
addPackage
public JavaPackage addPackage(java.lang.String packageName)
Adds the specified Java package to the
constraint, creating it if necessary.
- packageName - Java package name.
- Java package.
addPackage
public void addPackage(JavaPackage jPackage)
Adds the specified Java package to the
constraint.
- jPackage - Java package.
getPackages
public Collection getPackages()
Returns the constraint packages.
- Packages.
match
public boolean match(java.util.Collection expectedPackages)
Indicates whether the specified packages match
the packages in this constraint.
- expectedPackages
- true if the packages
match this constraint
DependencyConstraint
class is a constraint that tests whether two package-dependency graphs are equivalent. This class is useful for writing package dependency assertions (e.g. JUnit). For example, the following JUnit test will ensure that the 'ejb' and 'web' packages only depend upon the 'util' package, and no others: