import java.util.*;
import java.lang.reflect.*;
-class Node
+class Node<OtherNode extends Node>
implements IntegerMappable,
- GraphViz.ToGraphViz {
+ GraphViz.ToGraphViz,
+ Iterable<OtherNode> {
+
+ protected FastSet<OtherNode> predecessors = new FastSet<OtherNode>();
+ protected FastSet<OtherNode> successors = new FastSet<OtherNode>();
+ //private HashSet<OtherNode> predecessors = new HashSet<OtherNode>();
+ //private HashSet<OtherNode> successors = new HashSet<OtherNode>();
+
+ public Iterator<OtherNode> iterator() { return predecessors.iterator(); }
+
+ public boolean noSuccessors() { return successors.size()==0; }
+ public boolean predecessorsContains(OtherNode n) {
+ return predecessors.contains(n);
+ }
// GraphViz //////////////////////////////////////////////////////////////////////////////