@Override public Object transform(Object src, Event event) throws MessageTransformerException { return ((MessageTransformer) transformer).transform(src, event); }
@Override public Object transform(Object src, Charset encoding, Event event) throws MessageTransformerException { return ((MessageTransformer) transformer).transform(src, encoding, event); }
private Message transformMessage(final Message message, final CoreEvent event, final Transformer transformer) throws MessageTransformerException, TransformerException { Object result; if (transformer instanceof MessageTransformer) { result = ((MessageTransformer) transformer).transform(message, event); } else { result = transformer.transform(message); } if (result instanceof Message) { return (Message) result; } else { // We need to use message from event if it's available in case the transformer mutated the message by creating // a new message instance. This issue goes away once transformers are cleaned up and always return event or // message. See MULE-9342 Message messagePostTransform = (event != null && event.getMessage() != null) ? event.getMessage() : message; return Message.builder(messagePostTransform).value(result) .mediaType(mergeMediaType(messagePostTransform, transformer.getReturnDataType())).build(); } }