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