From c48747269ff30e101835877cb57d4df87bdead3c Mon Sep 17 00:00:00 2001 From: Lvbo163 Date: Tue, 26 Sep 2017 09:03:50 +0800 Subject: support sequence flow convert Issue-ID: SDC-395 Change-Id: Ibd28a640cceade20b3115f097778355fd5d5ac54 Signed-off-by: Lvbo163 --- .../parser/Bpmn4ToscaJsonParser.java | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParser.java b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParser.java index 81b41d98..64bff27b 100644 --- a/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParser.java +++ b/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParser.java @@ -14,10 +14,13 @@ package org.onap.sdc.workflowdesigner.parser; import java.io.IOException; import java.net.MalformedURLException; import java.net.URI; +import java.util.ArrayList; import java.util.Iterator; +import java.util.List; import org.onap.sdc.workflowdesigner.model.Element; import org.onap.sdc.workflowdesigner.model.Process; +import org.onap.sdc.workflowdesigner.model.SequenceFlow; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -57,12 +60,41 @@ public class Bpmn4ToscaJsonParser { // get element Element element = createElementFromJson(jsonNode); process.getElementList().add(element); + + // get sequence flows + List flowList = getSequenceFlows(jsonNode); + process.getSequenceFlowList().addAll(flowList); } return process; } + private List getSequenceFlows(JsonNode jsonNode) { + List flowList = new ArrayList(); + JsonNode sequenceFlowNodes = jsonNode.get("sequenceFlows"); + + Iterator iter = sequenceFlowNodes.iterator(); + while (iter.hasNext()) { + JsonNode connectionEntry = (JsonNode) iter.next(); + String sourceRef = getValueFromJsonNode(connectionEntry, "sourceRef"); + String targetRef = getValueFromJsonNode(connectionEntry, "targetRef"); + String condition = getValueFromJsonNode(connectionEntry, "condition"); + SequenceFlow flow = new SequenceFlow(); + flow.setId(sourceRef + targetRef); + flow.setSourceRef(sourceRef); + flow.setTargetRef(targetRef); + flow.setCondition(condition); + flowList.add(flow); + } + + return flowList; + } + + private String getValueFromJsonNode(JsonNode jsonNode, String key) { + return jsonNode.get(key) == null ? null : jsonNode.get(key).asText(); + } + protected Element createElementFromJson(JsonNode jsonNode) throws JsonParseException, JsonMappingException, IOException { String jsonObject = jsonNode.toString(); return MAPPER.readValue(jsonObject, Element.class); -- cgit 1.2.3-korg