public DirectedGraph<tsNode, DefaultEdge> getExpandedGraph() { expandedGraph = new DefaultDirectedGraph<tsNode, DefaultEdge>(DefaultEdge.class); Collection<tsNode> collection = rawGraph.vertexSet(); tsNode[] tsArray = collection.toArray(new tsNode[0]); int starterIndex = -1; for (int i = 0; i < tsArray.length; i++) { if (tsArray[i].isStart()) { starterIndex = 1; } } if (starterIndex == -1) { System.out.println("Graph has no starting node"); return null; } expandedGraph.addVertex(tsArray[starterIndex]); Collection<DefaultEdge> startEdges = rawGraph.edgesOf(tsArray[starterIndex]); // for (DefaultEdge edge : startEdges) { // expandedGraph.addVertex((tsNode)edge.getTarget()); // } return null; }