private Multiset<N> predecessorsMultiset() { Multiset<N> predecessors = getReference(predecessorsReference); if (predecessors == null) { predecessors = HashMultiset.create(inEdgeMap.values()); predecessorsReference = new SoftReference<>(predecessors); } return predecessors; }
private Multiset<N> successorsMultiset() { Multiset<N> successors = getReference(successorsReference); if (successors == null) { successors = HashMultiset.create(outEdgeMap.values()); successorsReference = new SoftReference<>(successors); } return successors; }
@Override public void addOutEdge(E edge, N node) { super.addOutEdge(edge, node); Multiset<N> successors = getReference(successorsReference); if (successors != null) { checkState(successors.add(node)); } }
@Override public void addInEdge(E edge, N node, boolean isSelfLoop) { super.addInEdge(edge, node, isSelfLoop); Multiset<N> predecessors = getReference(predecessorsReference); if (predecessors != null) { checkState(predecessors.add(node)); } }
private Multiset<N> predecessorsMultiset() { Multiset<N> predecessors = getReference(predecessorsReference); if (predecessors == null) { predecessors = HashMultiset.create(inEdgeMap.values()); predecessorsReference = new SoftReference<>(predecessors); } return predecessors; }
private Multiset<N> successorsMultiset() { Multiset<N> successors = getReference(successorsReference); if (successors == null) { successors = HashMultiset.create(outEdgeMap.values()); successorsReference = new SoftReference<>(successors); } return successors; }
@Override public void addOutEdge(E edge, N node) { super.addOutEdge(edge, node); Multiset<N> successors = getReference(successorsReference); if (successors != null) { checkState(successors.add(node)); } }
@Override public N removeInEdge(E edge, boolean isSelfLoop) { N node = super.removeInEdge(edge, isSelfLoop); Multiset<N> predecessors = getReference(predecessorsReference); if (predecessors != null) { checkState(predecessors.remove(node)); } return node; }
private Multiset<N> successorsMultiset() { Multiset<N> successors = getReference(successorsReference); if (successors == null) { successors = HashMultiset.create(outEdgeMap.values()); successorsReference = new SoftReference<>(successors); } return successors; }
private Multiset<N> predecessorsMultiset() { Multiset<N> predecessors = getReference(predecessorsReference); if (predecessors == null) { predecessors = HashMultiset.create(inEdgeMap.values()); predecessorsReference = new SoftReference<>(predecessors); } return predecessors; }
@Override public N removeOutEdge(E edge) { N node = super.removeOutEdge(edge); Multiset<N> successors = getReference(successorsReference); if (successors != null) { checkState(successors.remove(node)); } return node; }
@Override public void addInEdge(E edge, N node, boolean isSelfLoop) { super.addInEdge(edge, node, isSelfLoop); Multiset<N> predecessors = getReference(predecessorsReference); if (predecessors != null) { checkState(predecessors.add(node)); } }
@Override public void addOutEdge(E edge, N node) { super.addOutEdge(edge, node); Multiset<N> successors = getReference(successorsReference); if (successors != null) { checkState(successors.add(node)); } }
@Override public void addInEdge(E edge, N node, boolean isSelfLoop) { super.addInEdge(edge, node, isSelfLoop); Multiset<N> predecessors = getReference(predecessorsReference); if (predecessors != null) { checkState(predecessors.add(node)); } }
@Override public N removeInEdge(E edge, boolean isSelfLoop) { N node = super.removeInEdge(edge, isSelfLoop); Multiset<N> predecessors = getReference(predecessorsReference); if (predecessors != null) { checkState(predecessors.remove(node)); } return node; }
@Override public N removeOutEdge(E edge) { N node = super.removeOutEdge(edge); Multiset<N> successors = getReference(successorsReference); if (successors != null) { checkState(successors.remove(node)); } return node; }
@Override public N removeOutEdge(E edge) { N node = super.removeOutEdge(edge); Multiset<N> successors = getReference(successorsReference); if (successors != null) { checkState(successors.remove(node)); } return node; }
@Override public N removeInEdge(E edge, boolean isSelfLoop) { N node = super.removeInEdge(edge, isSelfLoop); Multiset<N> predecessors = getReference(predecessorsReference); if (predecessors != null) { checkState(predecessors.remove(node)); } return node; }
private Multiset<N> successorsMultiset() { Multiset<N> successors = getReference(successorsReference); if (successors == null) { successors = HashMultiset.create(outEdgeMap.values()); successorsReference = new SoftReference<>(successors); } return successors; }
@Override public N removeOutEdge(E edge) { N node = super.removeOutEdge(edge); Multiset<N> successors = getReference(successorsReference); if (successors != null) { checkState(successors.remove(node)); } return node; }