Skip to content

Instantly share code, notes, and snippets.

@marianogonzalez
Created May 16, 2012 15:00
Show Gist options
  • Save marianogonzalez/2711000 to your computer and use it in GitHub Desktop.
Save marianogonzalez/2711000 to your computer and use it in GitHub Desktop.
package org.mule.sfdc2boxnet.transformer;
import java.util.List;
import java.util.Map;
import org.mule.api.MuleMessage;
import org.mule.api.transformer.TransformerException;
import org.mule.transformer.AbstractMessageTransformer;
import org.mule.transformer.codec.Base64Decoder;
/**
*
* @author mariano.gonzalez@mulesoft.com
*
*/
public class ExtractAttachmentTransformer extends AbstractMessageTransformer {
private static final Base64Decoder base64Decoder = new Base64Decoder();
@Override
@SuppressWarnings("unchecked")
public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException {
List<Map<String, String>> list = (List<Map<String,String>>) message.getPayload();
if (list.size() != 1) {
throw new RuntimeException(String.format("query was expected to return one result but instead returned %d", list.size()));
}
Map<String, String> payload = list.get(0);
String name = payload.get("Name");
message.setOutboundProperty("attachName", name);
message.setPayload(this.parseBytes(payload.get("Body").toString()));
return message;
}
private byte[] parseBytes(String value) {
try {
return (byte[]) base64Decoder.doTransform(value, "UTF-8");
} catch (TransformerException e) {
throw new RuntimeException(e);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment