Build forests of packages, classes, and features and their dependencies. Each node can cross-reference other nodes in the forest, according to dependencies within the code.

Here are the core abstractions. At the code are Node and its subclasses. The NodeFactory creates Node instances. The Visitor implementations traverse dependency graphs and perform custom operations. For instance, the GraphSummarizer is used to perform queries and the Printer subclasses do textual rendering.


Visitors

CodeDependencyCollector traverses .class files and builds the dependency graph along the way, using a NodeFactory.


CodeDependencyCollector

Another way to build a dependency graph is to load one that was saved to an XML document. Dependency Finder uses SAX in the form of NodeLoader and NodeHandler. The latter, again, uses a NodeFactory to build the actual in memory representation.


SAX