1
2
3
4
5
6
7
8
9
10
11 package org.mule.tools.visualizer.processor;
12
13 import org.mule.tools.visualizer.config.ColorRegistry;
14 import org.mule.tools.visualizer.config.GraphEnvironment;
15 import org.mule.tools.visualizer.util.MuleTag;
16
17 import com.oy.shared.lm.graph.Graph;
18 import com.oy.shared.lm.graph.GraphNode;
19
20 import org.jdom.Element;
21
22 public class ResponseRouterProcessor extends TagProcessor
23 {
24
25 public ResponseRouterProcessor(GraphEnvironment environment)
26 {
27 super(environment);
28 }
29
30 public void process(Graph graph, Element currentElement, GraphNode parent)
31 {
32 Element responseRouterElement = currentElement.getChild(MuleTag.ELEMENT_RESPONSE_ROUTER);
33 if (responseRouterElement != null)
34 {
35
36 Element router = responseRouterElement.getChild(MuleTag.ELEMENT_ROUTER);
37 String className = router.getAttributeValue(MuleTag.ATTRIBUTE_CLASS_NAME);
38 GraphNode responseRouter = graph.addNode();
39 responseRouter.getInfo().setFillColor(ColorRegistry.COLOR_ROUTER);
40 responseRouter.getInfo().setHeader(className);
41 addEdge(graph, responseRouter, parent, "response router", false);
42
43 Element endpoint = responseRouterElement.getChild(MuleTag.ELEMENT_ENDPOINT);
44 String endpointAdress = endpoint.getAttributeValue(MuleTag.ATTRIBUTE_ADDRESS);
45 GraphNode out = getEnvironment().getEndpointRegistry().getEndpoint(endpointAdress,
46 parent.getInfo().getHeader());
47 addEdge(graph, out, responseRouter, "in", isTwoWay(endpoint));
48 }
49 }
50 }