public void remove(LinkedListNode node) { DefeasibleLogicalDependency dep = ((LinkedListEntry<DefeasibleLogicalDependency>) node).getObject(); if (dep.getDefeatedBy() != null) { // Defeated deps do not have defeated defeated lists of their own, so just remove. DefeasibleLogicalDependency defeater = dep.getDefeatedBy(); defeater.removeDefeated(dep); } else { // ins undefeated, process it's defeated list if they exist removeUndefeated(dep, (LinkedListEntry<DefeasibleLogicalDependency>) node); if (dep.getRootDefeated() != null) { reprocessDefeated(dep.getRootDefeated()); } } updateStatus(); }