@Override public void removeOutgoingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } successors.removeAll(number); hasSuccessor.clear(number); }
@Override public void removeOutgoingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } successors.removeAll(number); hasSuccessor.clear(number); }
@Override public void removeOutgoingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } successors.removeAll(number); hasSuccessor.clear(number); }
@Override public void removeIncomingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } predecessors.removeAll(number); }
@Override public void removeIncomingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } predecessors.removeAll(number); }
@Override public void removeIncomingEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } predecessors.removeAll(number); }
@Override public void removeAllIncidentEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } successors.removeAll(number); hasSuccessor.clear(number); predecessors.removeAll(number); }
@Override public void removeAllIncidentEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } successors.removeAll(number); hasSuccessor.clear(number); predecessors.removeAll(number); }
@Override public void removeAllIncidentEdges(T node) throws IllegalArgumentException { final int number = nodeManager.getNumber(node); if (number < 0) { throw new IllegalArgumentException("node not in graph: " + node); } IntSet succ = successors.getRelated(number); if (succ != null) { succ.foreach(x -> predecessors.remove(x, number)); } IntSet pred = predecessors.getRelated(number); if (pred != null) { pred.foreach(x -> { successors.remove(x, number); if (successors.getRelatedCount(x) == 0) { hasSuccessor.clear(x); } }); } successors.removeAll(number); hasSuccessor.clear(number); predecessors.removeAll(number); }
Assert.assertTrue(x.size() == 1); R.removeAll(3); x = R.getRelated(3); Assert.assertTrue(x == null);