/** Attribute and its two values for the visit status of positions. */ protected static Object STATUS = new Object(); // The status attribute protected static Object VISITED = new Object(); // Visited value protected static Object UNVISITED = new Object(); // Unvisited value /** Mark a position as visited. */ protected void visit(Position p) { p.set(STATUS, VISITED); } /** Mark a position as unvisited. */ protected void unVisit(Position p) { p.set(STATUS, UNVISITED); } /** Test if a position has been visited. */ protected boolean isVisited(Position p) { return (p.get(STATUS) == VISITED); }