/** * Trawl through the graph one node at a time looking forward and building up hashsets of nodes * and edges. * * @param vToAdd * @param eToAdd * @param current * @param g */ public void searchAndAdd( HashSet<String> vToAdd, HashSet<String> eToAdd, Vertex current, Graph<Vertex, Edge> g, Vertex end) { // System.out.println("Called searchAndAdd with " + current.toString() // ); for (Edge e : g.outgoingEdgesOf(current)) { eToAdd.add(e.toString()); Edge foundEdge = g.edgeRef.get(e.toString()); if (foundEdge == null) { if (__DEBUG) { a.e.println("Found an edge from " + e.toString() + " but counldn't find it in the graph"); } g.addE(e); foundEdge = g.edgeRef.get(e.toString()); } Vertex Target = foundEdge.target; // a.e.println("Making edge from " + current.toString() + " to " + // Target.toString()); if (Target.toString().compareTo(current.toString()) != 0) { if (end != null) { if (Target.toString().compareTo(end.toString()) == 0) { continue; } } vToAdd.add(g.edgeRef.get(e.toString()).target.id); searchAndAdd(vToAdd, eToAdd, g.edgeRef.get(e.toString()).target, g, end); } } }
public Graph<v, e> copyGraph(Graph<v, e> in) { Graph<v, e> copy = new Graph<v, e>(Edge.class); for (Vertex v : in.vertexSet()) { copy.addV(v); } for (Edge e : in.edgeSet()) { copy.addE(e); } return copy; }
/** * Copy a graph into the Graph structure * * @param g */ public void copyInGraph(Graph<Vertex, Edge> g) { if (this.subGraphs.contains(g.name)) { return; } for (Vertex v : g.vertexSet()) { this.addV(v); } for (Edge e : g.edgeSet()) { this.addE(e); } this.subGraphs.add(g.name); if (!allGraphs.containsKey(g.name)) { allGraphs.put(g.name, g); } }