diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Graph.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Graph.java index d241b41ec..7742b59f3 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Graph.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/Graph.java @@ -43,16 +43,6 @@ public final class Graph { } } - public Next findNext(int handlerId) { - Node node = nodeIndex.get(handlerId); - if (node == null) { - throw new NodeNotFoundException("Can't find node with handlerId=" - + handlerId - + " in graph[" + id + "]"); - } - return node.getNext(); - } - void checkForNewNode(Node node) { int nodeId = node.getHandler().id(); if (nodeIndex.containsKey(nodeId)) { @@ -63,11 +53,15 @@ public final class Graph { nodeIndex.put(nodeId, node); } - public GraphBuilder toBuilder(){ - return new GraphBuilder(this); + public GraphNodeFinder toFinder() { + return new GraphNodeFinder(this); } ConcurrentHashMap getNodeIndex() { return nodeIndex; } + + int getId() { + return id; + } } diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphBuilder.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphNodeFinder.java similarity index 62% rename from apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphBuilder.java rename to apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphNodeFinder.java index eb671e0e8..b48a01516 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphBuilder.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/graph/GraphNodeFinder.java @@ -23,21 +23,40 @@ import java.util.concurrent.ConcurrentHashMap; /** * @author wu-sheng */ -public class GraphBuilder { +public class GraphNodeFinder { private Graph graph; - GraphBuilder(Graph graph) { + GraphNodeFinder(Graph graph) { this.graph = graph; } + /** + * Find an exist node to build the graph. + * + * @param handlerId of specific node in graph. + * @param outputClass of the found node + * @param type of given output class + * @return Node instance. + */ public Node findNode(int handlerId, Class outputClass) { ConcurrentHashMap graphNodeIndex = graph.getNodeIndex(); Node node = graphNodeIndex.get(handlerId); if (node == null) { throw new NodeNotFoundException("Can't find node with handlerId=" + handlerId - + " in graph[" + handlerId + "]"); + + " in graph[" + graph.getId() + "]"); } return node; } + + public Next findNext(int handlerId) { + ConcurrentHashMap graphNodeIndex = graph.getNodeIndex(); + Node node = graphNodeIndex.get(handlerId); + if (node == null) { + throw new NodeNotFoundException("Can't find node with handlerId=" + + handlerId + + " in graph[" + graph.getId() + "]"); + } + return node.getNext(); + } } diff --git a/apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/graph/GraphManagerTest.java b/apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/graph/GraphManagerTest.java index 1d6ed6d58..0e011e61f 100644 --- a/apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/graph/GraphManagerTest.java +++ b/apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/graph/GraphManagerTest.java @@ -87,7 +87,7 @@ public class GraphManagerTest { Graph graph = GraphManager.INSTANCE.createIfAbsent(4, String.class); graph.addNode(new Node1Processor()).addNext(new Node2Processor()).addNext(new Node4Processor()); - Next next = GraphManager.INSTANCE.findGraph(4).findNext(2); + Next next = GraphManager.INSTANCE.findGraph(4).toFinder().findNext(2); next.execute(123); String output = outputStream.toString(); @@ -102,7 +102,7 @@ public class GraphManagerTest { Graph graph = GraphManager.INSTANCE.createIfAbsent(5, String.class); graph.addNode(new Node1Processor()).addNext(new Node2Processor()).addNext(new Node4Processor()); - Next next = GraphManager.INSTANCE.findGraph(5).findNext(3); + Next next = GraphManager.INSTANCE.findGraph(5).toFinder().findNext(3); } @Test @@ -110,7 +110,7 @@ public class GraphManagerTest { Graph graph = GraphManager.INSTANCE.createIfAbsent(6, String.class); graph.addNode(new Node1Processor()).addNext(new Node2Processor()); - Node foundNode = GraphManager.INSTANCE.findGraph(6).toBuilder().findNode(2, Integer.class); + Node foundNode = GraphManager.INSTANCE.findGraph(6).toFinder().findNode(2, Integer.class); foundNode.addNext(new Node4Processor()); }