JAV-181 minor refactoring
Signed-off-by: seanyinx <sean.yin@huawei.com>
diff --git a/saga-core/src/main/java/io/servicecomb/saga/core/dag/ByLevelTraveller.java b/saga-core/src/main/java/io/servicecomb/saga/core/dag/ByLevelTraveller.java
index 6c6bde4..f117517 100644
--- a/saga-core/src/main/java/io/servicecomb/saga/core/dag/ByLevelTraveller.java
+++ b/saga-core/src/main/java/io/servicecomb/saga/core/dag/ByLevelTraveller.java
@@ -48,9 +48,7 @@
nodesWithoutParent.offer(traversalDirection.root(dag));
}
- @Segment(name = "travelNext", category = "application", library = "kamon")
- @Override
- public void next(C condition) {
+ private void spitSatisfiedNodes(C condition, Collection<Node<C, T>> nodes) {
do {
Set<Node<C, T>> orphans = new LinkedHashSet<>();
nodesBuffer.forEach(node -> {
@@ -64,14 +62,20 @@
nodesBuffer.clear();
nodesBuffer.addAll(orphans);
} while (!nodesBuffer.isEmpty());
+ }
+
+ @Segment(name = "travelNext", category = "application", library = "kamon")
+ @Override
+ public void next(C condition) {
+ spitSatisfiedNodes(condition, nodes);
while (!nodesWithoutParent.isEmpty() && nodesBuffer.isEmpty()) {
Node<C, T> node = nodesWithoutParent.poll();
nodes.add(node);
- collectOrphans(node, child -> {
- nodesWithoutParent.offer(child);
- nodesBuffer.add(child);
+ collectOrphans(node, orphan -> {
+ nodesWithoutParent.offer(orphan);
+ nodesBuffer.add(orphan);
});
}
}