public void setValues(ItemDefinition otherElement) { super.setValues(otherElement); setStructureRef(otherElement.getStructureRef()); setItemKind(otherElement.getItemKind()); } }
@Override public ItemDefinition clone() { ItemDefinition clone = new ItemDefinition(); clone.setValues(this); return clone; }
protected void createItemDefinitions(BpmnModel bpmnModel) { for (org.flowable.bpmn.model.ItemDefinition itemDefinitionElement : bpmnModel.getItemDefinitions().values()) { if (!itemDefinitionMap.containsKey(itemDefinitionElement.getId())) { StructureDefinition structure = null; try { // it is a class Class<?> classStructure = ReflectUtil.loadClass(itemDefinitionElement.getStructureRef()); structure = new ClassStructureDefinition(classStructure); } catch (FlowableException e) { // it is a reference to a different structure structure = structureDefinitionMap.get(itemDefinitionElement.getStructureRef()); } ItemDefinition itemDefinition = new ItemDefinition(itemDefinitionElement.getId(), structure); if (StringUtils.isNotEmpty(itemDefinitionElement.getItemKind())) { itemDefinition.setItemKind(ItemKind.valueOf(itemDefinitionElement.getItemKind())); } itemDefinitionMap.put(itemDefinition.getId(), itemDefinition); } } }
public void parse(XMLStreamReader xtr, BpmnModel model) throws Exception { if (StringUtils.isNotEmpty(xtr.getAttributeValue(null, ATTRIBUTE_ID))) { String itemDefinitionId = model.getTargetNamespace() + ":" + xtr.getAttributeValue(null, ATTRIBUTE_ID); String structureRef = xtr.getAttributeValue(null, ATTRIBUTE_STRUCTURE_REF); if (StringUtils.isNotEmpty(structureRef)) { ItemDefinition item = new ItemDefinition(); item.setId(itemDefinitionId); BpmnXMLUtil.addXMLLocation(item, xtr); int indexOfP = structureRef.indexOf(':'); if (indexOfP != -1) { String prefix = structureRef.substring(0, indexOfP); String resolvedNamespace = model.getNamespace(prefix); structureRef = resolvedNamespace + ":" + structureRef.substring(indexOfP + 1); } else { structureRef = model.getTargetNamespace() + ":" + structureRef; } item.setStructureRef(structureRef); item.setItemKind(xtr.getAttributeValue(null, ATTRIBUTE_ITEM_KIND)); BpmnXMLUtil.parseChildElements(ELEMENT_ITEM_DEFINITION, item, xtr, model); model.addItemDefinition(itemDefinitionId, item); } } } }
public String getType() { String structureRef = itemSubjectRef.getStructureRef(); return structureRef.substring(structureRef.indexOf(':') + 1); }
if (dataIdNode != null && StringUtils.isNotEmpty(dataIdNode.asText())) { ValuedDataObject dataObject = null; ItemDefinition itemSubjectRef = new ItemDefinition(); String dataType = dataNode.get(PROPERTY_DATA_TYPE).asText(); dataObject.setName(dataNode.get(PROPERTY_DATA_NAME).asText()); itemSubjectRef.setStructureRef("xsd:" + dataType); dataObject.setItemSubjectRef(itemSubjectRef);
protected void createItemDefinitions() { for (org.flowable.bpmn.model.ItemDefinition itemDefinitionElement : bpmnModel.getItemDefinitions().values()) { StructureDefinition structure = null; try { // it is a class Class<?> classStructure = ReflectUtil.loadClass(itemDefinitionElement.getStructureRef()); structure = new ClassStructureDefinition(classStructure); } catch (ActivitiException e) { // it is a reference to a different structure structure = this.structures.get(itemDefinitionElement.getStructureRef()); } ItemDefinition itemDefinition = new ItemDefinition(itemDefinitionElement.getId(), structure); if (StringUtils.isNotEmpty(itemDefinitionElement.getItemKind())) { itemDefinition.setItemKind(ItemKind.valueOf(itemDefinitionElement.getItemKind())); } itemDefinitions.put(itemDefinition.getId(), itemDefinition); } }
public String getType() { String structureRef = itemSubjectRef.getStructureRef(); return structureRef.substring(structureRef.indexOf(':') + 1); }
@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr, BpmnModel model) throws Exception { ValuedDataObject dataObject = null; ItemDefinition itemSubjectRef = new ItemDefinition(); itemSubjectRef.setStructureRef(structureRef); dataObject.setItemSubjectRef(itemSubjectRef);
public void setValues(ItemDefinition otherElement) { super.setValues(otherElement); setStructureRef(otherElement.getStructureRef()); setItemKind(otherElement.getItemKind()); } }
@Override protected void writeAdditionalAttributes(BaseElement element, BpmnModel model, XMLStreamWriter xtw) throws Exception { ValuedDataObject dataObject = (ValuedDataObject) element; if (dataObject.getItemSubjectRef() != null && StringUtils.isNotEmpty(dataObject.getItemSubjectRef().getStructureRef())) { writeDefaultAttribute(ATTRIBUTE_DATA_ITEM_REF, dataObject.getItemSubjectRef().getStructureRef(), xtw); } }
@Override public ItemDefinition clone() { ItemDefinition clone = new ItemDefinition(); clone.setValues(this); return clone; }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ValuedDataObject otherObject = (ValuedDataObject) o; if (!otherObject.getItemSubjectRef().getStructureRef().equals(this.itemSubjectRef.getStructureRef())) return false; if (!otherObject.getId().equals(this.id)) return false; if (!otherObject.getName().equals(this.name)) return false; return otherObject.getValue().equals(this.value.toString()); } }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ValuedDataObject otherObject = (ValuedDataObject) o; if (!otherObject.getItemSubjectRef().getStructureRef().equals(this.itemSubjectRef.getStructureRef())) return false; if (!otherObject.getId().equals(this.id)) return false; if (!otherObject.getName().equals(this.name)) return false; return otherObject.getValue().equals(this.value.toString()); } }
public static void convertDataPropertiesToJson(List<ValuedDataObject> dataObjects, ObjectNode propertiesNode) { ObjectNode dataPropertiesNode = objectMapper.createObjectNode(); ArrayNode itemsNode = objectMapper.createArrayNode(); for (ValuedDataObject dObj : dataObjects) { ObjectNode propertyItemNode = objectMapper.createObjectNode(); propertyItemNode.put(PROPERTY_DATA_ID, dObj.getId()); propertyItemNode.put(PROPERTY_DATA_NAME, dObj.getName()); String itemSubjectRefQName = dObj.getItemSubjectRef().getStructureRef(); // remove namespace prefix String dataType = itemSubjectRefQName.substring(itemSubjectRefQName.indexOf(':') + 1); propertyItemNode.put(PROPERTY_DATA_TYPE, dataType); Object dObjValue = dObj.getValue(); String value = new String(); if (null == dObjValue) { propertyItemNode.put(PROPERTY_DATA_VALUE, ""); } else { if ("datetime".equals(dataType)) { value = new DateTime(dObjValue).toString("yyyy-MM-dd'T'hh:mm:ss"); } else { value = new String(dObjValue.toString()); } propertyItemNode.put(PROPERTY_DATA_VALUE, value); } itemsNode.add(propertyItemNode); } dataPropertiesNode.set(EDITOR_PROPERTIES_GENERAL_ITEMS, itemsNode); propertiesNode.set(PROPERTY_DATA_PROPERTIES, dataPropertiesNode); }