From 0dd4ebbf01771f76c9726e3ec79e0fad58f84b70 Mon Sep 17 00:00:00 2001 From: Mike Dias Date: Thu, 24 Apr 2014 12:57:18 -0300 Subject: [PATCH] Improving "cancelActivity" attribute handling with JsonConverterUtil.getPropertyValueAsBoolean(name, objectNode, defaultValue) --- .../json/converter/BaseBpmnJsonConverter.java | 4 ++++ .../json/converter/BoundaryEventJsonConverter.java | 12 +++++------- .../language/json/converter/BpmnJsonConverter.java | 5 +---- .../json/converter/util/JsonConverterUtil.java | 10 +++++++++- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BaseBpmnJsonConverter.java b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BaseBpmnJsonConverter.java index a293fa2880..a4bbd1adb1 100644 --- a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BaseBpmnJsonConverter.java +++ b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BaseBpmnJsonConverter.java @@ -664,6 +664,10 @@ public abstract class BaseBpmnJsonConverter implements EditorJsonConstants, Sten return JsonConverterUtil.getPropertyValueAsBoolean(name, objectNode); } + protected boolean getPropertyValueAsBoolean(String name, JsonNode objectNode, boolean defaultValue) { + return JsonConverterUtil.getPropertyValueAsBoolean(name, objectNode, defaultValue); + } + protected List getPropertyValueAsList(String name, JsonNode objectNode) { return JsonConverterUtil.getPropertyValueAsList(name, objectNode); } diff --git a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BoundaryEventJsonConverter.java b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BoundaryEventJsonConverter.java index d1c9ff66fb..51c6ba5f68 100644 --- a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BoundaryEventJsonConverter.java +++ b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BoundaryEventJsonConverter.java @@ -81,29 +81,27 @@ public class BoundaryEventJsonConverter extends BaseBpmnJsonConverter { dockersArrayNode.add(dockNode); flowElementNode.put("dockers", dockersArrayNode); - if (boundaryEvent.isCancelActivity() == false) { - propertiesNode.put(PROPERTY_CANCEL_ACTIVITY, PROPERTY_VALUE_NO); - } + propertiesNode.put(PROPERTY_CANCEL_ACTIVITY, boundaryEvent.isCancelActivity() ? PROPERTY_VALUE_YES : PROPERTY_VALUE_NO); addEventProperties(boundaryEvent, propertiesNode); } protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map shapeMap) { BoundaryEvent boundaryEvent = new BoundaryEvent(); + boundaryEvent.setAttachedToRefId(lookForAttachedRef(elementNode.get(EDITOR_SHAPE_ID).asText(), modelNode.get(EDITOR_CHILD_SHAPES))); + boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode, true)); + String stencilId = BpmnJsonConverterUtil.getStencilId(elementNode); if (STENCIL_EVENT_BOUNDARY_TIMER.equals(stencilId)) { - boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); convertJsonToTimerDefinition(elementNode, boundaryEvent); } else if (STENCIL_EVENT_BOUNDARY_ERROR.equals(stencilId)) { + boundaryEvent.setCancelActivity(true); //always true convertJsonToErrorDefinition(elementNode, boundaryEvent); } else if (STENCIL_EVENT_BOUNDARY_SIGNAL.equals(stencilId)) { - boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); convertJsonToSignalDefinition(elementNode, boundaryEvent); } else if (STENCIL_EVENT_BOUNDARY_MESSAGE.equals(stencilId)) { - boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); convertJsonToMessageDefinition(elementNode, boundaryEvent); } - boundaryEvent.setAttachedToRefId(lookForAttachedRef(elementNode.get(EDITOR_SHAPE_ID).asText(), modelNode.get(EDITOR_CHILD_SHAPES))); return boundaryEvent; } diff --git a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BpmnJsonConverter.java b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BpmnJsonConverter.java index 3e1e05d824..a121e94f9b 100644 --- a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BpmnJsonConverter.java +++ b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BpmnJsonConverter.java @@ -290,10 +290,7 @@ public class BpmnJsonConverter implements EditorJsonConstants, StencilConstants, pool.setId(BpmnJsonConverterUtil.getElementId(shapeNode)); pool.setName(JsonConverterUtil.getPropertyValueAsString(PROPERTY_NAME, shapeNode)); pool.setProcessRef(JsonConverterUtil.getPropertyValueAsString(PROPERTY_PROCESS_ID, shapeNode)); - JsonNode processExecutableNode = JsonConverterUtil.getProperty(PROPERTY_PROCESS_EXECUTABLE, shapeNode); - if (processExecutableNode != null && StringUtils.isNotEmpty(processExecutableNode.asText())) { - pool.setExecutable(JsonConverterUtil.getPropertyValueAsBoolean(PROPERTY_PROCESS_EXECUTABLE, shapeNode)); - } + pool.setExecutable(JsonConverterUtil.getPropertyValueAsBoolean(PROPERTY_PROCESS_EXECUTABLE, shapeNode, true)); bpmnModel.getPools().add(pool); Process process = new Process(); diff --git a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/util/JsonConverterUtil.java b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/util/JsonConverterUtil.java index 34e1708c4f..569cd83238 100644 --- a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/util/JsonConverterUtil.java +++ b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/util/JsonConverterUtil.java @@ -19,11 +19,19 @@ public class JsonConverterUtil implements EditorJsonConstants, StencilConstants } public static boolean getPropertyValueAsBoolean(String name, JsonNode objectNode) { - boolean result = false; + return getPropertyValueAsBoolean(name, objectNode, false); + } + + public static boolean getPropertyValueAsBoolean(String name, JsonNode objectNode, boolean defaultValue) { + boolean result = defaultValue; String stringValue = getPropertyValueAsString(name, objectNode); + if (PROPERTY_VALUE_YES.equalsIgnoreCase(stringValue)) { result = true; + } else if (PROPERTY_VALUE_NO.equalsIgnoreCase(stringValue)) { + result = false; } + return result; } -- GitLab