예제 #1
0
  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();
  }