dotnodeparams = param;
}
}
+
+ public static final EdgeStatus UNVISITED = new EdgeStatus("UNVISITED");
+ public static final EdgeStatus PROCESSING = new EdgeStatus("PROCESSING");
+ public static final EdgeStatus FINISHED = new EdgeStatus("FINISHED");
+
+ public static class EdgeStatus {
+ private static String name;
+ private EdgeStatus(String name) { this.name = name; }
+ public String toString() { return name; }
+ }
+
+ int discoverytime = -1;
+ int finishingtime = -1; /* used for searches */
+ EdgeStatus status = UNVISITED;
+
+ void reset() {
+ discoverytime = -1;
+ finishingtime = -1;
+ status = UNVISITED;
+ }
+
+ void discover(int time) {
+ discoverytime = time;
+ status = PROCESSING;
+ }
+
+ void finish(int time) {
+ assert status == PROCESSING;
+ finishingtime = time;
+ status = FINISHED;
+ }
}