- public Iterable<StateNode> getPreds() { return predecessors; }
- public void addSucc(StateNode succ) {
- if (successors.contains(succ)) return;
- successors.add(succ);
- usedByNonDoomedNode += succ.state().doomed ? 0 : 1;
- if (predecessors.size() > 1) throw new Error();
- }
- public void removeSucc(StateNode succ) {
- if (!successors.contains(succ)) return;
- successors.remove(succ);
- usedByNonDoomedNode -= succ.state().doomed ? 0 : 1;
- check();
+ public String toString() { return super.toString()+"->"+phase(); }
+ public boolean hasPathToRoot() {
+ if (predecessorPhase()==null) return true;
+ return super.hasPathToRoot();