private void visitConnectionsDi()

in jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/XmlBPMNProcessDumper.java [802:867]


    private void visitConnectionsDi(org.kie.api.definition.process.Node[] nodes, StringBuilder xmlDump) {
        List<Connection> connections = new ArrayList<>();
        for (org.kie.api.definition.process.Node node : nodes) {
            for (List<Connection> connectionList : node.getIncomingConnections().values()) {
                connections.addAll(connectionList);
            }
            if (node instanceof CompositeNode) {
                visitConnectionsDi(((CompositeNode) node).getNodes(), xmlDump);
            }
        }
        for (Connection connection : connections) {
            String bendpoints = (String) connection.getMetaData().get("bendpoints");
            xmlDump.append(
                    "      <bpmndi:BPMNEdge bpmnElement=\"" +
                            getUniqueNodeId(connection.getFrom()) + "-" + getUniqueNodeId(connection.getTo()) + "\" >" + EOL);
            Integer x = (Integer) connection.getFrom().getMetaData().get("x");
            if (x == null) {
                x = 0;
            }
            Integer y = (Integer) connection.getFrom().getMetaData().get("y");
            if (y == null) {
                y = 0;
            }
            Integer width = (Integer) connection.getFrom().getMetaData().get("width");
            if (width == null) {
                width = 40;
            }
            Integer height = (Integer) connection.getFrom().getMetaData().get("height");
            if (height == null) {
                height = 40;
            }
            xmlDump.append(
                    "        <di:waypoint x=\"" + (x + width / 2) + "\" y=\"" + (y + height / 2) + "\" />" + EOL);
            if (bendpoints != null) {
                bendpoints = bendpoints.substring(1, bendpoints.length() - 1);
                String[] points = bendpoints.split(";");
                for (String point : points) {
                    String[] coords = point.split(",");
                    if (coords.length == 2) {
                        xmlDump.append(
                                "        <di:waypoint x=\"" + coords[0] + "\" y=\"" + coords[1] + "\" />" + EOL);
                    }
                }
            }
            x = (Integer) connection.getTo().getMetaData().get("x");
            if (x == null) {
                x = 0;
            }
            y = (Integer) connection.getTo().getMetaData().get("y");
            if (y == null) {
                y = 0;
            }
            width = (Integer) connection.getTo().getMetaData().get("width");
            if (width == null) {
                width = 40;
            }
            height = (Integer) connection.getTo().getMetaData().get("height");
            if (height == null) {
                height = 40;
            }
            xmlDump.append(
                    "        <di:waypoint x=\"" + (x + width / 2) + "\" y=\"" + (y + height / 2) + "\" />" + EOL);
            xmlDump.append(
                    "      </bpmndi:BPMNEdge>" + EOL);
        }
    }