diff options
Diffstat (limited to 'deprecated-workflow-designer/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParser.java')
-rw-r--r-- | deprecated-workflow-designer/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParser.java | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/deprecated-workflow-designer/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParser.java b/deprecated-workflow-designer/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParser.java deleted file mode 100644 index f41faa37..00000000 --- a/deprecated-workflow-designer/sdc-workflow-designer-server/src/main/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParser.java +++ /dev/null @@ -1,216 +0,0 @@ -/** - * Copyright (c) 2017-2018 ZTE Corporation. - * All rights reserved. This program and the accompanying materials - * are made available under the Apache License, Version 2.0 - * and the Eclipse Public License v1.0 which both accompany this distribution, - * and are available at http://www.eclipse.org/legal/epl-v10.html - * and http://www.apache.org/licenses/LICENSE-2.0 - * - * Contributors: - * ZTE - initial API and implementation and/or initial documentation - */ -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.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.onap.sdc.workflowdesigner.model.DataObject; -import org.onap.sdc.workflowdesigner.model.Element; -import org.onap.sdc.workflowdesigner.model.EndEvent; -import org.onap.sdc.workflowdesigner.model.ErrorEndEvent; -import org.onap.sdc.workflowdesigner.model.ErrorStartEvent; -import org.onap.sdc.workflowdesigner.model.ExclusiveGateway; -import org.onap.sdc.workflowdesigner.model.IntermediateCatchEvent; -import org.onap.sdc.workflowdesigner.model.ParallelGateway; -import org.onap.sdc.workflowdesigner.model.Parameter; -import org.onap.sdc.workflowdesigner.model.Process; -import org.onap.sdc.workflowdesigner.model.RestServiceTask; -import org.onap.sdc.workflowdesigner.model.ScriptTask; -import org.onap.sdc.workflowdesigner.model.SequenceFlow; -import org.onap.sdc.workflowdesigner.model.ServiceTask; -import org.onap.sdc.workflowdesigner.model.StartEvent; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; - -public class Bpmn4ToscaJsonParser { - - private static Logger log = LoggerFactory.getLogger(Bpmn4ToscaJsonParser.class); - - private static ObjectMapper MAPPER = new ObjectMapper(); - - private Map<String, JsonNode> restConfigMap = new HashMap<String, JsonNode>(); - - static { - MAPPER.enable(SerializationFeature.INDENT_OUTPUT); - MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - } - - public Process parse(String processName, URI jsonFileUrl) - throws JsonParseException, JsonMappingException, MalformedURLException, IOException { - Process process = new Process(processName); - - JsonNode rootNode = MAPPER.readValue(jsonFileUrl.toURL(), JsonNode.class); - - log.debug("Creating Process models..."); -// JsonNode nodes = rootNode.get(JsonKeys.NODES); - JsonNode data = rootNode.get(JsonKeys.DATA); - if(null == data) { - return process; - } - JsonNode nodes = data.get(JsonKeys.NODES); - if (nodes == null) { - return process; - } - - this.loadConfigs(rootNode.get(JsonKeys.CONFIGS)); - - Iterator<JsonNode> iter = nodes.iterator(); - while (iter.hasNext()) { - JsonNode jsonNode = (JsonNode) iter.next(); - - // get element - Element element = createElementFromJson(jsonNode); - process.getElementList().add(element); - - // get sequence flows - List<SequenceFlow> flowList = getSequenceFlows(jsonNode); - process.getSequenceFlowList().addAll(flowList); - - // add dataObject - if (element instanceof StartEvent) { - List<DataObject> dataObjects = this.getDataObject((StartEvent) element); - process.getDataObjectList().addAll(dataObjects); - } - } - - return process; - - } - - private List<DataObject> getDataObject(StartEvent startEvent) { - List<DataObject> dataObjects = new ArrayList<DataObject>(); - - for (Parameter parameter : startEvent.getParameters()) { - DataObject dataObject = new DataObject(); - dataObject.setId(parameter.getName()); - dataObject.setName(parameter.getName()); - dataObject.setValue((String) parameter.getValue()); - - dataObjects.add(dataObject); - } - - return dataObjects; - } - - private void loadConfigs(JsonNode config) { - if(config == null) { - return; - } - loadRestConfigs(config.get(JsonKeys.REST_CONFIGS)); - } - - private void loadRestConfigs(JsonNode restConfigs) { - if(restConfigs == null) { - return; - } - - Iterator<JsonNode> iter = restConfigs.iterator(); - while (iter.hasNext()) { - JsonNode restConfig = (JsonNode) iter.next(); - - String configId = getValueFromJsonNode(restConfig, JsonKeys.ID); - restConfigMap.put(configId, restConfig); - } - } - - private List<SequenceFlow> getSequenceFlows(JsonNode jsonNode) { - List<SequenceFlow> flowList = new ArrayList<SequenceFlow>(); - String elementId = getValueFromJsonNode(jsonNode, JsonKeys.ID); - JsonNode connectionsNode = jsonNode.get(JsonKeys.CONNECTIONS); - - Iterator<JsonNode> iter = connectionsNode.iterator(); - while (iter.hasNext()) { - JsonNode connectionEntry = (JsonNode) iter.next(); - String targetRef = getValueFromJsonNode(connectionEntry, JsonKeys.TARGET_REF); - String condition = getValueFromJsonNode(connectionEntry, JsonKeys.CONDITION); - SequenceFlow flow = new SequenceFlow(); - flow.setId(elementId + targetRef); - flow.setSourceRef(elementId); - flow.setTargetRef(targetRef); - flow.setCondition(condition); - flowList.add(flow); - } - - return flowList; - } - - protected Element createElementFromJson(JsonNode jsonNode) - throws JsonParseException, JsonMappingException, IOException { - String jsonObject = jsonNode.toString(); - Element element; - - String nodeType = getValueFromJsonNode(jsonNode, JsonKeys.TYPE); - if (nodeType == null) { - log.warn("Ignoring node: type is null"); - return null; - } - - switch (nodeType) { - case "startEvent": - element = MAPPER.readValue(jsonObject, StartEvent.class); - break; - case "endEvent": - element = MAPPER.readValue(jsonObject, EndEvent.class); - break; - case "errorStartEvent": - element = MAPPER.readValue(jsonObject, ErrorStartEvent.class); - break; - case "errorEndEvent": - element = MAPPER.readValue(jsonObject, ErrorEndEvent.class); - break; - case "intermediateCatchEvent": - element = MAPPER.readValue(jsonObject, IntermediateCatchEvent.class); - break; - case "serviceTask": - element = MAPPER.readValue(jsonObject, ServiceTask.class); - break; - case "restTask": - // element = this.createRestServiceTask(jsonObject); - element = MAPPER.readValue(jsonObject, RestServiceTask.class); - break; - case "scriptTask": - element = MAPPER.readValue(jsonObject, ScriptTask.class); - break; - case "exclusiveGateway": - element = MAPPER.readValue(jsonObject, ExclusiveGateway.class); - break; - case "parallelGateway": - element = MAPPER.readValue(jsonObject, ParallelGateway.class); - break; - default: - log.warn("Ignoring node: type '" + nodeType + "' is unkown"); - return null; - } - - return element; - } - - - private String getValueFromJsonNode(JsonNode jsonNode, String key) { - return jsonNode.get(key) == null ? null : jsonNode.get(key).asText(); - } - -} |