}
Object payload = muleMessage.getPayload();
if (payload instanceof String) {
return (String)payload;
} else if (payload instanceof ProcessInstanceAttribute) {
ProcessInstanceAttribute pia = (ProcessInstanceAttribute) payload;
ProcessInstanceAttribute attributeByKey = processInstance.findAttributeByKey(pia.getKey());
if (attributeByKey != null) {
processInstance.removeAttribute(attributeByKey);
}
processInstance.addAttribute(pia);
return pia.toString();
} else if (payload instanceof ProcessInstanceAttribute[]) {
ProcessInstanceAttribute[] pias = (ProcessInstanceAttribute[]) payload;
for (ProcessInstanceAttribute pia : pias) {
ProcessInstanceAttribute attributeByKey = processInstance.findAttributeByKey(pia.getKey());
if (attributeByKey != null) {
processInstance.removeAttribute(attributeByKey);
}
processInstance.addAttribute(pia);
}
} else if (payload instanceof Iterable) {
Iterable pias = (Iterable) payload;
for (Object o : pias) {
if (o instanceof ProcessInstanceAttribute) {
ProcessInstanceAttribute pia = (ProcessInstanceAttribute) o;
ProcessInstanceAttribute attributeByKey = processInstance.findAttributeByKey(pia.getKey());
if (attributeByKey != null) {
processInstance.removeAttribute(attributeByKey);
}
processInstance.addAttribute(pia);
}