private static boolean isReservedDataOutput(DataOutput dataOutput) { if (dataOutput == null) { return false; } String dataName = dataOutput.getName(); return isReservedDataName(dataName); }
private static DataOutput dataOutputOf(String parentId, String identifier, ItemDefinition itemDefinition) { DataOutput dataOutput = bpmn2.createDataOutput(); dataOutput.setId(Ids.dataOutput(parentId, identifier)); dataOutput.setName(identifier); dataOutput.setItemSubjectRef(itemDefinition); CustomAttribute.dtype.of(dataOutput).set(itemDefinition.getStructureRef()); return dataOutput; }
if (prop.getId() != null && prop.getId().equals(miCollectionOutput)) { DataOutput miCollectionOutputDI = Bpmn2Factory.eINSTANCE.createDataOutput(); miCollectionOutputDI.setName("mioutputCollection"); ItemDefinition miCollectionOutputDIItemDefinition = this.getMessageItemDefinition(def.getRootElements(), prop.getId()); miCollectionOutputDI.setItemSubjectRef(miCollectionOutputDIItemDefinition); task.getIoSpecification().getDataOutputs().add(miCollectionOutputDI); if (task.getIoSpecification().getOutputSets() == null || task.getIoSpecification().getOutputSets().size() < 1) { List<DataOutput> douts = task.getIoSpecification().getDataOutputs(); for (DataOutput dout : douts) { if (dout.getName().equals(miDataOutput)) { DataOutput outputDataItemObj = Bpmn2Factory.eINSTANCE.createDataOutput(); outputDataItemObj.setId("miDataOutputX"); outputDataItemObj.setItemSubjectRef(dout.getItemSubjectRef()); loopCharacteristics.setOutputDataItem(outputDataItemObj); break; List<DataOutput> douts = task.getIoSpecification().getDataOutputs(); for (DataOutput dou : douts) { if (dou.getName().equals(miDataOutput)) { dout.getSourceRef().add(dou); task.getDataOutputAssociations().add(dout);
if (taskmi.getOutputDataItem() != null && taskmi.getOutputDataItem().getItemSubjectRef() != null) { List<DataOutput> taskDataOutputs = task.getIoSpecification().getDataOutputs(); for (DataOutput dout : taskDataOutputs) { if (dout != null && dout.getItemSubjectRef() != null && taskmi.getOutputDataItem() != null && taskmi.getOutputDataItem().getItemSubjectRef() != null) { if (dout.getItemSubjectRef().getId().equals(taskmi.getOutputDataItem().getItemSubjectRef().getId())) { properties.put("multipleinstancedataoutput", dout.getName()); MultiInstanceLoopCharacteristics taskMultiLoop = (MultiInstanceLoopCharacteristics) task.getLoopCharacteristics(); if (taskMultiLoop.getOutputDataItem() != null && taskMultiLoop.getOutputDataItem().getId() != null) { if (dataout.getTargetRef().getId().equals(taskMultiLoop.getOutputDataItem().getId())) { proceed = false; String lhsAssociation = ((DataOutput) dataout.getSourceRef().get(0)).getName(); String rhsAssociation = dataout.getTargetRef().getId(); boolean wasBiDirectional = false;
String name = output.getName(); String type = Optional.ofNullable(output.getItemSubjectRef()) .map(ItemDefinition::getStructureRef) .orElse(output.getAnyAttribute().get(0).getValue().toString());
String[] doutputParts = dataOutput.split(":\\s*"); if (doutputParts.length == 2) { nextOutput.setId(event.getId() + "_" + doutputParts[0]); nextOutput.setName(doutputParts[0]); ExtendedMetaData metadata = ExtendedMetaData.INSTANCE; EAttributeImpl extensionAttribute = (EAttributeImpl) metadata.demandFeature( SimpleFeatureMapEntry extensionEntry = new SimpleFeatureMapEntry(extensionAttribute, doutputParts[1]); nextOutput.getAnyAttribute().add(extensionEntry); } else { nextOutput.setId(event.getId() + "_" + dataOutput); nextOutput.setName(dataOutput); ExtendedMetaData metadata = ExtendedMetaData.INSTANCE; EAttributeImpl extensionAttribute = (EAttributeImpl) metadata.demandFeature( SimpleFeatureMapEntry extensionEntry = new SimpleFeatureMapEntry(extensionAttribute, "Object"); nextOutput.getAnyAttribute().add(extensionEntry); if (dataOutputs != null) { for (DataOutput ddo : dataOutputs) { if (ddo.getId().equals(event.getId() + "_" + fromPart)) { doa.getSourceRef().add(ddo);
String[] dataOutputParts = dataOutput.split(":\\s*"); if (dataOutputParts.length == 2) { nextOut.setId(activity.getId() + "_" + dataOutputParts[0] + (dataOutputParts[0].endsWith("OutputX") ? "" : "OutputX")); nextOut.setName(dataOutputParts[0]); ExtendedMetaData metadata = ExtendedMetaData.INSTANCE; EAttributeImpl extensionAttribute = (EAttributeImpl) metadata.demandFeature( SimpleFeatureMapEntry extensionEntry = new SimpleFeatureMapEntry(extensionAttribute, dataOutputParts[1]); nextOut.getAnyAttribute().add(extensionEntry); } else { nextOut.setId(activity.getId() + "_" + dataOutput + (dataOutput.endsWith("OutputX") ? "" : "OutputX")); nextOut.setName(dataOutput); ExtendedMetaData metadata = ExtendedMetaData.INSTANCE; EAttributeImpl extensionAttribute = (EAttributeImpl) metadata.demandFeature( SimpleFeatureMapEntry extensionEntry = new SimpleFeatureMapEntry(extensionAttribute, "Object"); nextOut.getAnyAttribute().add(extensionEntry);
DataOutputAssociation doa = Bpmn2Factory.eINSTANCE.createDataOutputAssociation(); for (DataOutput dout : dataOutputs) { if (dout.getId().equals(sp.getId() + "_" + fromPart + "OutputX")) { doa.getSourceRef().add(dout); break; multiOutput.setId(sp.getId() + "_" + "output"); multiOutput.setName(outputCollectionStr); sp.getIoSpecification().getDataOutputs().add(multiOutput); outset.getDataOutputRefs().add(multiOutput); if (miDataOutputStr != null && !miDataOutputStr.isEmpty()) { DataOutput don = Bpmn2Factory.eINSTANCE.createDataOutput(); don.setId(miDataOutputStr); ItemDefinition itemDef2 = Bpmn2Factory.eINSTANCE.createItemDefinition(); itemDef2.setId(sp.getId() + "_" + "multiInstanceOutputItemType"); don.setItemSubjectRef(itemDef2); addSubprocessItemDefs(itemDef2); loopCharacteristics.setOutputDataItem(don);
List<DataOutput> dataOutputs = ac.getIoSpecification().getDataOutputs(); for (DataOutput dout : dataOutputs) { Iterator<FeatureMap.Entry> iter = dout.getAnyAttribute().iterator(); while (iter.hasNext()) { FeatureMap.Entry entry = iter.next(); if (doutType != null && doutType.length() > 0) { ItemDefinition itemdef = Bpmn2Factory.eINSTANCE.createItemDefinition(); itemdef.setId("_" + dout.getId() + "Item"); itemdef.setStructureRef(doutType); toAddItemDefinitions.add(itemdef); dout.setItemSubjectRef(itemdef);
OutputSet outSet = task.getIoSpecification().getOutputSets().get(0); for (DataOutput dataOut : outSet.getDataOutputRefs()) { if (dataOut.getId().equals(task.getId() + "_" + da.getId() + "OutputX")) { foundDataOutput = true; d.setId(task.getId() + "_" + da.getId() + "OutputX"); d.setName(da.getId() + "OutputX"); task.getIoSpecification().getDataOutputs().add(d); task.getIoSpecification().getOutputSets().get(0).getDataOutputRefs().add(d); List<DataOutput> dataOutputs = ce.getDataOutputs(); for (DataOutput dout : dataOutputs) { if (dout.getId().equals(ce.getId() + "_" + da.getId() + "OutputX")) { foundDataOutput = true; dataout.setId(ce.getId() + "_" + da.getId() + "OutputX"); dataout.setName(da.getId() + "OutputX"); ce.getDataOutputs().add(dataout); if (ce.getOutputSet() == null) { OutputSet outSet = sourceElement.getIoSpecification().getOutputSets().get(0); for (DataOutput dataOut : outSet.getDataOutputRefs()) { if (dataOut.getId().equals(sourceElement.getId() + "_" + da.getId() + "OutputX")) { foundDataOutput = true; d.setId(sourceElement.getId() + "_" + da.getId() + "OutputX"); d.setName(da.getId() + "OutputX"); sourceElement.getIoSpecification().getDataOutputs().add(d); sourceElement.getIoSpecification().getOutputSets().get(0).getDataOutputRefs().add(d);
public void setAssignmentsInfo(AssignmentsInfo info) { ParsedAssignmentsInfo assignmentsInfo = ParsedAssignmentsInfo.of(info); List<InitializedOutputVariable> outputs = assignmentsInfo.createInitializedOutputVariables( getId(), variableScope); if (outputs.isEmpty()) { return; } if (outputs.size() > 1) { throw new IllegalArgumentException("Output Associations should be at most 1 in Catch Events"); } InitializedOutputVariable output = outputs.get(0); DataOutput dataOutput = output.getDataOutput(); event.getDataOutputs().add(dataOutput); getOutputSet().getDataOutputRefs().add(dataOutput); this.addItemDefinition(dataOutput.getItemSubjectRef()); DataOutputAssociation dataOutputAssociation = output.getDataOutputAssociation(); if (dataOutputAssociation != null) { event.getDataOutputAssociation().add(dataOutputAssociation); } }
@Test public void JBPM_7447_shouldNotFilterOutDataOutputsWithEmptyType() { DataOutput dataOutput = bpmn2.createDataOutput(); dataOutput.setId("Foo"); ParsedAssignmentsInfo result = AssignmentsInfos.parsed( Collections.emptyList(), Collections.emptyList(), Collections.singletonList(dataOutput), Collections.emptyList(), false ); assertThat(result.getOutputs().getDeclarations()).isNotEmpty(); } }
private static boolean isReservedDataOutputAssociation(List<DataOutput> dataOutputs, DataOutputAssociation dataOutputAssociation) { DataOutput dataOutput = dataOutputs.stream() .filter(output -> output.getId().equals(getTargetRefID(dataOutputAssociation))) .findFirst() .orElse(null); return isReservedDataOutput(dataOutput); }
public void setCollectionOutput(String collectionOutput) { // ignore empty input if (collectionOutput == null) { return; } DataOutput dataOutputElement = createDataOutput("OUT_COLLECTION"); Property prop = findPropertyById(collectionOutput); // check whether this exist or throws miloop.setLoopDataOutputRef(dataOutputElement); ItemDefinition item = bpmn2.createItemDefinition(); item.setId(Ids.multiInstanceItemType(process.getId(), "OUT_COLLECTION")); dataOutputElement.setItemSubjectRef(item); this.addItemDefinition(item); this.outputSet.getDataOutputRefs().add(dataOutputElement); DataOutputAssociation doa = Bpmn2Factory.eINSTANCE.createDataOutputAssociation(); doa.getSourceRef().add(dataOutputElement); doa.setTargetRef(prop); process.getDataOutputAssociations().add(doa); }
if (taskDataOutputs != null) { for (DataOutput dout : taskDataOutputs) { if (dout.getItemSubjectRef() == null) { properties.put(MULTIPLEINSTANCEDATAOUTPUT, taskmi.getOutputDataItem().getId()); break; if (dout.getItemSubjectRef() != null && dout.getItemSubjectRef().getId().equals(taskmi.getOutputDataItem().getItemSubjectRef().getId())) { properties.put(MULTIPLEINSTANCEDATAOUTPUT, dout.getName()); break; taskmi.getOutputDataItem().getId());
if (dout.getId().equals(callActivity.getId() + "_" + fromPart + "OutputX")) { doa.getSourceRef().add(dout); break;
public void setOutput(String name) { DataOutput dataOutput = createDataOutput(name); miloop.setOutputDataItem(dataOutput); ItemDefinition item = bpmn2.createItemDefinition(); item.setId(Ids.multiInstanceItemType(process.getId(), name)); dataOutput.setItemSubjectRef(item); this.addItemDefinition(item); }
private static List<AssociationDeclaration> outAssociationDeclarations(List<DataOutputAssociation> outputAssociations) { return outputAssociations.stream() .map(out -> new AssociationDeclaration( Direction.Output, Type.SourceTarget, ((DataOutput) out.getSourceRef().get(0)).getName(), getPropertyName((Property) out.getTargetRef()))) .collect(Collectors.toList()); }