// CASE 1
// A --> [...] --> B
// A imports from resolved B
if(count == 2 && resolved == 1 && implied == 1) {
Edge e1 = new Edge("", STYLE_EDGE__IMPORT, a.getVertex(), edges.get(1).getVertex());
Edge e2 = new Edge(getVersionLabel(edges.get(0)), STYLE_EDGE__RESOLVED_DEP, //
edges.get(1).getVertex(), b.getVertex());
g.addEdge(e1, e2);
addTooltip(tooltipString, e1, e2);
addStyleClasses(styleClasses, e1, e2);
addEdgeHref(a, b, e1, e2);
}
else if(count == 1 && implied == 1) {
// CASE 5
// A --> [...]
if(edges.get(0).to == null) {
Edge e1 = new Edge("unresolved", STYLE_EDGE__UIMPORT, a.getVertex(), edges.get(0).getVertex());
g.addEdge(e1);
addTooltip(tooltipString, e1);
addStyleClasses(styleClasses, e1);
addEdgeHref(a, b, e1);
}
// CASE 8 (reference to pptp - do not draw imports -> pptp part)
// A -->[...]
else if(edges.get(0).to == pptpNode) {
Edge e1 = new Edge("puppet", STYLE_EDGE__IMPORT, a.getVertex(), edges.get(0).getVertex());
g.addEdge(e1);
// default tooltip == label
addStyleClasses(styleClasses, e1);
addEdgeHref(a, b, e1);
}
// CASE 2 (and CASE 0 - self reference)
// A -->[...] ~~> B
else {
if(edges.get(0).from != edges.get(0).to) { // skip self references
Edge e1 = new Edge("", STYLE_EDGE__IMPORT, a.getVertex(), edges.get(0).getVertex());
Edge e2 = new Edge(
"implicit", STYLE_EDGE__IMPLIED_DEP, edges.get(0).getVertex(),
edges.get(0).to.getVertex());
g.addEdge(e1, e2);
addTooltip(tooltipString, e1, e2);
addStyleClasses(styleClasses, e1, e2);
addEdgeHref(a, b, e1, e2);
}
}
}
// CASE 3
// A --> [...] ~~>(not in range) B
else if(count == 2 && implied == 1 && unresolved == 1) {
Edge e1 = new Edge("", STYLE_EDGE__IMPORT, a.getVertex(), edges.get(1).getVertex());
String label = "implicit\\nunresolved\\n" + getVersionLabel(edges.get(0));
Edge e2 = new Edge(label, STYLE_EDGE__UNRESOLVED_IMPLIED_DEP, //
edges.get(1).getVertex(), edges.get(1).to.getVertex());
g.addEdge(e1, e2);
addTooltip(tooltipString, e1, e2);
addStyleClasses(styleClasses, e1, e2);
addEdgeHref(a, b, e1, e2);
}
else if(count == 1 && unresolved == 1) {
// CASE 7
// A ~~> B where B is not in range
if(edges.get(0).to.exists()) {
String label = "unresolved\\n" + getVersionLabel(edges.get(0));
Edge e1 = new Edge(label, STYLE_EDGE__UNRESOLVED_IMPLIED_DEP, //
a.getVertex(), b.getVertex());
g.addEdge(e1);
addTooltip(tooltipString, e1);
addStyleClasses(styleClasses, e1);
addEdgeHref(a, b, e1);
}
// CASE 4
// A --> B where B does not exist
else {
String label = "unresolved\\n" + getVersionLabel(edges.get(0));
Edge e1 = new Edge(label, STYLE_EDGE__UNRESOLVED_DEP, //
a.getVertex(), b.getVertex());
g.addEdge(e1);
addTooltip(tooltipString, e1);
addStyleClasses(styleClasses, e1);
addEdgeHref(a, b, e1);
}
}
// CASE 6
// A --> B
// (nothing is imported from B)
else if(count == 1 && resolved == 1) {
Edge e1 = new Edge(getVersionLabel(edges.get(0)), STYLE_EDGE__RESOLVED_DEP, //
a.getVertex(), b.getVertex());
g.addEdge(e1);
addTooltip(tooltipString, e1);
addStyleClasses(styleClasses, e1);
addEdgeHref(a, b, e1);