提交 0dd4ebbf 编写于 作者: M Mike Dias

Improving "cancelActivity" attribute handling with...

Improving "cancelActivity" attribute handling with JsonConverterUtil.getPropertyValueAsBoolean(name, objectNode, defaultValue)
上级 a03a1b95
......@@ -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<String> getPropertyValueAsList(String name, JsonNode objectNode) {
return JsonConverterUtil.getPropertyValueAsList(name, objectNode);
}
......
......@@ -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<String, JsonNode> 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;
}
......
......@@ -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();
......
......@@ -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;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册