if (flowElement instanceof Activity) {
//为什么要改成impl???很多方法都封装在impl里?
ActivityImpl activity = (ActivityImpl) flowElement;
for (BoundaryEvent boundaryEvent : activity.getBoundaryEventRefs()) {
outgoingArrayNode.add(BpmnJsonConverterUtil.createResourceNode(boundaryEvent.getId()));
}
if (activity.getLoopCharacteristics() != null) {
MultiInstanceLoopCharacteristics loopDef = (MultiInstanceLoopCharacteristics)activity.getLoopCharacteristics();//.getLoopCharacteristics();
propertiesNode.put(PROPERTY_MULTIINSTANCE, StringUtil.getString(true));
propertiesNode.put(PROPERTY_MULTIINSTANCE_SEQUENTIAL, StringUtil.getString(loopDef.isIsSequential()));
if(activity.getLoopDataInputCollectionExpression() != null){
propertiesNode.put(PROPERTY_MULTIINSTANCE_INPUT_COLLECTION, activity.getLoopDataInputCollectionExpression());
}
if(activity.getLoopDataOutputCollectionExpression() !=null){
propertiesNode.put(PROPERTY_MULTIINSTANCE_OUTPUT_COLLECTION, activity.getLoopDataOutputCollectionExpression());
}
if(loopDef.getInputDataItem()!=null){
propertiesNode.put(PROPERTY_MULTIINSTANCE_INPUT_ITEM, activity.getInputDataItemExpression());
}
if(loopDef.getOutputDataItem() !=null){
propertiesNode.put(PROPERTY_MULTIINSTANCE_OUTPUT_ITEM, activity.getOutputDataItemExpression());
}
if(BpmnModelUtil.getExpression(loopDef.getCompletionCondition()) !=null){
propertiesNode.put(PROPERTY_MULTIINSTANCE_CONDITION, BpmnModelUtil.getExpression(loopDef.getCompletionCondition()));
}
}
//跳过策略
SkipStrategy skipStrategy = activity.getSkipStrategy();
if(skipStrategy !=null){
setPropertyValue(PROPERTY_ACTIVITY_SKIPSTRATEGY, StringUtil.getString(skipStrategy.isIsEnable()), propertiesNode);
setPropertyValue(PROPERTY_ACTIVITY_IS_CREATE_SKIP_PROCESS, StringUtil.getString(skipStrategy.isIsCreateSkipProcess()), propertiesNode);
SkipAssignee skipAssignee = skipStrategy.getSkipAssignee();
if(skipAssignee != null){