private List<Path> getAllPathsFromExitNodes(List<Node> nodes) { List<Path> paths = new ArrayList<Path>(); for (Node node : nodes) { if (node instanceof Exit) { paths.addAll(((Exit) node).paths); } } return paths; }
List<Path> buildPaths(List<Node> nodes) { if (nodes.size() == 1) { return Collections.emptyList(); } Entry entryNode = (Entry) nodes.get(0); Path path = new Path(entryNode); ConditionalSuccessor nextNode = entryNode.nextNode; if (nextNode == null) { nextNode = (ConditionalSuccessor) nodes.get(1); } nextNode.addToPath(path); return getAllPathsFromExitNodes(nodes); }