From: Lvbo163 Date: Tue, 26 Sep 2017 01:03:50 +0000 (+0800) Subject: support sequence flow convert X-Git-Tag: v1.0.0~26 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F57%2F15257%2F1;p=sdc%2Fsdc-workflow-designer.git support sequence flow convert Issue-ID: SDC-395 Change-Id: Ibd28a640cceade20b3115f097778355fd5d5ac54 Signed-off-by: Lvbo163 --- 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);