/** * This method returns a topologically sorted list of SparkTran. */ private List<SparkTran> getAllTrans() { List<SparkTran> result = new LinkedList<SparkTran>(); Set<SparkTran> seen = new HashSet<SparkTran>(); for (SparkTran leaf: leafTrans) { // make sure all leaves are visited at least once visit(leaf, seen, result); } return result; }
/** * This method returns a topologically sorted list of SparkTran. */ private List<SparkTran> getAllTrans() { List<SparkTran> result = new LinkedList<SparkTran>(); Set<SparkTran> seen = new HashSet<SparkTran>(); for (SparkTran leaf: leafTrans) { // make sure all leaves are visited at least once visit(leaf, seen, result); } return result; }
private void visit(SparkTran child, Set<SparkTran> seen, List<SparkTran> result) { if (seen.contains(child)) { // don't visit multiple times return; } seen.add(child); for (SparkTran parent: getParents(child)) { if (!seen.contains(parent)) { visit(parent, seen, result); } } result.add(child); }
private void visit(SparkTran child, Set<SparkTran> seen, List<SparkTran> result) { if (seen.contains(child)) { // don't visit multiple times return; } seen.add(child); for (SparkTran parent: getParents(child)) { if (!seen.contains(parent)) { visit(parent, seen, result); } } result.add(child); }
/** * This method returns a topologically sorted list of SparkTran. */ private List<SparkTran> getAllTrans() { List<SparkTran> result = new LinkedList<SparkTran>(); Set<SparkTran> seen = new HashSet<SparkTran>(); for (SparkTran leaf: leafTrans) { // make sure all leaves are visited at least once visit(leaf, seen, result); } return result; }
private void visit(SparkTran child, Set<SparkTran> seen, List<SparkTran> result) { if (seen.contains(child)) { // don't visit multiple times return; } seen.add(child); for (SparkTran parent: getParents(child)) { if (!seen.contains(parent)) { visit(parent, seen, result); } } result.add(child); }