From ca57c4bc2ce48c52f10bf6ef816492cf044430e0 Mon Sep 17 00:00:00 2001 From: Zhaoxing Date: Thu, 28 Sep 2017 16:44:06 +0800 Subject: Add unit test for vfc-nfvo-wfengine Change-Id: Ib6c9151f5aeae55e7f9055a8d5e33fb0b51a8474 Issue-id: VFC-454 Signed-off-by: Zhaoxing --- .../activitiext/restservicetask/GsonUtil.java | 117 +++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 activiti-extension/src/main/java/org/onap/workflow/activitiext/restservicetask/GsonUtil.java (limited to 'activiti-extension/src/main/java/org/onap/workflow/activitiext/restservicetask/GsonUtil.java') diff --git a/activiti-extension/src/main/java/org/onap/workflow/activitiext/restservicetask/GsonUtil.java b/activiti-extension/src/main/java/org/onap/workflow/activitiext/restservicetask/GsonUtil.java new file mode 100644 index 0000000..2e0aa77 --- /dev/null +++ b/activiti-extension/src/main/java/org/onap/workflow/activitiext/restservicetask/GsonUtil.java @@ -0,0 +1,117 @@ +/** + * Copyright 2017 ZTE Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onap.workflow.activitiext.restservicetask; + +import java.util.Map.Entry; + +import org.activiti.engine.delegate.DelegateExecution; +import org.onap.workflow.activitiext.common.ConstString; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; + +public class GsonUtil { + + private static final Logger logger = LoggerFactory.getLogger(GsonUtil.class); + + public static JsonObject formatJsonObject(String key, JsonObject obj, DelegateExecution execution) { + + JsonObject res = new JsonObject(); + + for (Entry entry : obj.entrySet()) { + + if (entry.getValue() instanceof JsonObject) { + + JsonObject tempObj = (JsonObject) entry.getValue(); + JsonElement valueSource = tempObj.get(ConstString.PARAMETER_VALUESOURCE); + if(valueSource == null || valueSource.getAsString().equals(ConstString.PARAMETER_VALUE_SOURCE_DEFINITION)) + { + res.add(entry.getKey(), formatJsonObject(entry.getKey(), entry.getValue().getAsJsonObject(), execution)); + }else{ + res.addProperty(entry.getKey(), getValue(tempObj, execution)); + } + + } else if (entry.getValue() instanceof JsonArray) { + + JsonArray objArray = entry.getValue().getAsJsonArray(); + JsonArray resArray = formatJsonArray(objArray, execution); + res.add(entry.getKey(), resArray); + } + } + + return res; + } + + public static JsonArray formatJsonArray(JsonArray objArray, DelegateExecution execution) { + + JsonArray array = new JsonArray(); + + for (JsonElement element : objArray) { + + if (element.isJsonObject()) { + + JsonObject tempObj = (JsonObject) element; + JsonElement valueSource = tempObj.get(ConstString.PARAMETER_VALUESOURCE); + if(valueSource == null || valueSource.getAsString().equals(ConstString.PARAMETER_VALUE_SOURCE_DEFINITION)) + { + array.add(formatJsonObject(null, element.getAsJsonObject(), execution)); + }else{ + array.add(new JsonPrimitive(getValue(tempObj, execution))); + } + + } else if (element.isJsonArray()) { + + array = formatJsonArray(element.getAsJsonArray(), execution); + } + } + + return array; + } + + /** + * obtain jsonObject value + * @param obj + * @param execution + * @return + */ + public static String getValue(JsonObject obj, DelegateExecution execution) + { + String result = new String(); + try { + String valueSource = obj.get(ConstString.PARAMETER_VALUESOURCE).getAsString(); + String value = obj.get(ConstString.PARAMETER_VALUE).getAsString(); + if(ConstString.PARAMETER_VALUE_SOURCE_STRING.equals(valueSource)) + { + result = value; + }else if(ConstString.PARAMETER_VALUE_SOURCE_PLAN.equals(valueSource)) + { + result = HttpUtil.parsePlanExpression(value, execution); + }else if(ConstString.PARAMETER_VALUE_SOURCE_TOPOLOGY.equals(valueSource)) + { + result = HttpUtil.parseTopologyExpression(value, execution); + } + } catch (Exception e) { + logger.error("jsonObject {} is illegal!", obj.toString(), e); + throw e; + } + + return result; + } +} -- cgit 1.2.3-korg