protected String parseItemRef(String itemRef, BpmnModel model) { String result = null; if (StringUtils.isNotEmpty(itemRef)) { int indexOfP = itemRef.indexOf(':'); if (indexOfP != -1) { String prefix = itemRef.substring(0, indexOfP); String resolvedNamespace = model.getNamespace(prefix); result = resolvedNamespace + ":" + itemRef.substring(indexOfP + 1); } else { result = itemRef; } } return result; } }
protected void writeMessageDefinition(Event parentEvent, MessageEventDefinition messageDefinition, BpmnModel model, XMLStreamWriter xtw) throws Exception { xtw.writeStartElement(ELEMENT_EVENT_MESSAGEDEFINITION); String messageRef = messageDefinition.getMessageRef(); if (StringUtils.isNotEmpty(messageRef)) { // remove the namespace from the message id if set if (messageRef.startsWith(model.getTargetNamespace())) { messageRef = messageRef.replace(model.getTargetNamespace(), ""); messageRef = messageRef.replaceFirst(":", ""); } else { for (String prefix : model.getNamespaces().keySet()) { String namespace = model.getNamespace(prefix); if (messageRef.startsWith(namespace)) { messageRef = messageRef.replace(model.getTargetNamespace(), ""); messageRef = prefix + messageRef; } } } } writeDefaultAttribute(ATTRIBUTE_MESSAGE_REF, messageRef, xtw); boolean didWriteExtensionStartElement = BpmnXMLUtil.writeExtensionElements(messageDefinition, false, xtw); if (didWriteExtensionStartElement) { xtw.writeEndElement(); } xtw.writeEndElement(); }
} else { for (String prefix : model.getNamespaces().keySet()) { String namespace = model.getNamespace(prefix); if (messageId.startsWith(namespace)) { messageId = messageId.replace(model.getTargetNamespace(), ""); String namespace = model.getNamespace(prefix); if (itemRef.startsWith(namespace)) { if (prefix.isEmpty()) {
protected String parseOperationRef(String operationRef, BpmnModel model) { String result = null; if (StringUtils.isNotEmpty(operationRef)) { int indexOfP = operationRef.indexOf(':'); if (indexOfP != -1) { String prefix = operationRef.substring(0, indexOfP); String resolvedNamespace = model.getNamespace(prefix); result = resolvedNamespace + ":" + operationRef.substring(indexOfP + 1); } else { result = model.getTargetNamespace() + ":" + operationRef; } } return result; }
protected String parseItemSubjectRef(String itemSubjectRef, BpmnModel model) { String result = null; if (StringUtils.isNotEmpty(itemSubjectRef)) { int indexOfP = itemSubjectRef.indexOf(':'); if (indexOfP != -1) { String prefix = itemSubjectRef.substring(0, indexOfP); String resolvedNamespace = model.getNamespace(prefix); result = resolvedNamespace + ":" + itemSubjectRef.substring(indexOfP + 1); } else { result = model.getTargetNamespace() + ":" + itemSubjectRef; } } return result; } }
protected String parseOperationRef(String operationRef, BpmnModel model) { String result = null; if (StringUtils.isNotEmpty(operationRef)) { int indexOfP = operationRef.indexOf(':'); if (indexOfP != -1) { String prefix = operationRef.substring(0, indexOfP); String resolvedNamespace = model.getNamespace(prefix); result = resolvedNamespace + ":" + operationRef.substring(indexOfP + 1); } else { result = model.getTargetNamespace() + ":" + operationRef; } } return result; } }
protected String parseMessageRef(String messageRef, BpmnModel model) { String result = null; if (StringUtils.isNotEmpty(messageRef)) { int indexOfP = messageRef.indexOf(':'); if (indexOfP != -1) { String prefix = messageRef.substring(0, indexOfP); String resolvedNamespace = model.getNamespace(prefix); messageRef = messageRef.substring(indexOfP + 1); if (resolvedNamespace == null) { // if it's an invalid prefix will consider this is not a // namespace prefix so will be used as part of the // stringReference messageRef = prefix + ":" + messageRef; } else if (!resolvedNamespace.equalsIgnoreCase(model.getTargetNamespace())) { // if it's a valid namespace prefix but it's not the // targetNamespace then we'll use it as a valid namespace // (even out editor does not support defining namespaces it // is still a valid xml file) messageRef = resolvedNamespace + ":" + messageRef; } } result = messageRef; } return result; } }
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); } } } }
if (indexOfP != -1) { String prefix = eventDefinition.getMessageRef().substring(0, indexOfP); String resolvedNamespace = model.getNamespace(prefix); String messageRef = eventDefinition.getMessageRef().substring(indexOfP + 1);