Ver código fonte

clean up topology code

tags/2.0.1
Jonathan Cobb 3 anos atrás
pai
commit
4c1d7e827a
1 arquivos alterados com 16 adições e 14 exclusões
  1. +16
    -14
      src/main/java/org/cobbzilla/util/collection/Topology.java

+ 16
- 14
src/main/java/org/cobbzilla/util/collection/Topology.java Ver arquivo

@@ -20,20 +20,22 @@ public class Topology<T> {
.findFirst().orElse(null);
final Node<T> node = existingNode != null ? existingNode : new Node<>(thing);

// add refs as edges; skip self-references
refs.stream().filter(ref -> !ref.equals(thing)).forEach(ref -> {
final Node<T> existingEdgeNode = nodes.stream()
.filter(n -> n.thing.equals(ref))
.findFirst()
.orElse(null);
if (existingEdgeNode != null) {
node.addEdge(existingEdgeNode);
} else {
final Node<T> newEdgeNode = new Node<>(ref);
nodes.add(newEdgeNode);
node.addEdge(newEdgeNode);
}
});
// add refs as edges
refs.stream()
.filter(ref -> !ref.equals(thing)) // skip self-references
.forEach(ref -> {
final Node<T> existingEdgeNode = nodes.stream()
.filter(n -> n.thing.equals(ref))
.findFirst()
.orElse(null);
if (existingEdgeNode != null) {
node.addEdge(existingEdgeNode);
} else {
final Node<T> newEdgeNode = new Node<>(ref);
nodes.add(newEdgeNode);
node.addEdge(newEdgeNode);
}
});
if (existingNode == null) nodes.add(node);
}



Carregando…
Cancelar
Salvar