1
2
3
4
5
6
7 package org.mule.transformer.simple;
8
9 import org.mule.api.transformer.TransformerException;
10 import org.mule.transformer.AbstractTransformer;
11 import org.mule.transformer.types.DataTypeFactory;
12 import org.mule.util.IOUtils;
13 import org.mule.util.StringUtils;
14
15 import java.io.InputStream;
16
17 public class StringAppendTransformer extends AbstractTransformer
18 {
19 private String message = StringUtils.EMPTY;
20
21 public StringAppendTransformer()
22 {
23 this(StringUtils.EMPTY);
24 }
25
26 public StringAppendTransformer(String message)
27 {
28 this.message = message;
29 registerSourceType(DataTypeFactory.STRING);
30 registerSourceType(DataTypeFactory.BYTE_ARRAY);
31 registerSourceType(DataTypeFactory.INPUT_STREAM);
32 setReturnDataType(DataTypeFactory.STRING);
33 }
34
35 @Override
36 protected Object doTransform(Object src, String encoding) throws TransformerException
37 {
38 String string;
39 if (src instanceof byte[])
40 {
41 string = new String((byte[]) src);
42 }
43 else if (src instanceof InputStream)
44 {
45 InputStream input = (InputStream) src;
46 try
47 {
48 string = IOUtils.toString(input);
49 }
50 finally
51 {
52 IOUtils.closeQuietly(input);
53 }
54 }
55 else
56 {
57 string = (String) src;
58 }
59
60 return append(message, string);
61 }
62
63 public static String append(String append, String msg)
64 {
65 return msg + append;
66 }
67
68 public String getMessage()
69 {
70 return message;
71 }
72
73 public void setMessage(String message)
74 {
75 this.message = message;
76 }
77 }