KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > picocontainer > gems > monitors > prefuse > PrefuseDependencyGraph


1 package org.picocontainer.gems.monitors.prefuse;
2
3 import java.util.Collection JavaDoc;
4 import java.util.HashMap JavaDoc;
5 import java.util.Map JavaDoc;
6
7 import org.picocontainer.gems.monitors.ComponentDependencyMonitor.Dependency;
8
9 import prefuse.data.Graph;
10 import prefuse.data.Node;
11 import prefuse.data.Schema;
12 import prefuse.data.tuple.TupleSet;
13
14 public class PrefuseDependencyGraph implements ComponentDependencyListener {
15     private Graph graph;
16
17     private Map JavaDoc nodes;
18
19     public PrefuseDependencyGraph() {
20         this.graph = initializeGraph();
21         this.nodes = new HashMap JavaDoc();
22     }
23
24     public void addDependency(Dependency dependency) {
25         Node componentNode = addNode(dependency.getComponentType());
26         Node dependencyNode = addNode(dependency.getDependencyType());
27         if (dependencyNode != null) {
28             graph.addEdge(componentNode, dependencyNode);
29         }
30     }
31
32     Collection JavaDoc getTypes() {
33         return nodes.keySet();
34     }
35
36     Node[] getNodes() {
37         return (Node[]) nodes.values().toArray(new Node[nodes.size()]);
38     }
39
40     private Node addNode(Class JavaDoc type) {
41         if (type != null && !nodes.containsKey(type)) {
42             Node node = graph.addNode();
43             node.set("type", type);
44             nodes.put(type, node);
45         }
46         return (Node) nodes.get(type);
47     }
48
49     private Graph initializeGraph() {
50         return getGraph(getSchema());
51     }
52
53     private Graph getGraph(Schema schema) {
54         graph = new Graph(true);
55         graph.addColumns(schema);
56         return graph;
57     }
58
59     private Schema getSchema() {
60         Schema schema = new Schema();
61         schema.addColumn("type", Class JavaDoc.class, null);
62         return schema;
63     }
64
65     public TupleSet getEdges() {
66         return graph.getEdges();
67     }
68
69     public Graph getGraph() {
70         return graph;
71     }
72 }
73
Popular Tags