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
22
23
24
25
26
27
28 public class StringToObjectArray extends AbstractTransformer
29 {
30 private String delimiter = null;
31 private static final String DEFAULT_DELIMITER = " ";
32
33 public StringToObjectArray()
34 {
35 registerSourceType(DataTypeFactory.STRING);
36 registerSourceType(DataTypeFactory.BYTE_ARRAY);
37 registerSourceType(DataTypeFactory.INPUT_STREAM);
38 setReturnDataType(DataTypeFactory.create(Object[].class));
39 }
40
41 @Override
42 public Object doTransform(Object src, String encoding) throws TransformerException
43 {
44 String in;
45
46 if (src instanceof byte[])
47 {
48 in = new String((byte[])src);
49 }
50 else if (src instanceof InputStream)
51 {
52 InputStream input = (InputStream) src;
53 try
54 {
55 in = IOUtils.toString(input);
56 }
57 finally
58 {
59 IOUtils.closeQuietly(input);
60 }
61 }
62 else
63 {
64 in = (String)src;
65 }
66
67 String[] out = StringUtils.splitAndTrim(in, getDelimiter());
68 return out;
69 }
70
71
72
73
74 public String getDelimiter()
75 {
76 if (delimiter == null)
77 {
78 return DEFAULT_DELIMITER;
79 }
80 else
81 {
82 return delimiter;
83 }
84 }
85
86
87
88
89 public void setDelimiter(String delimiter)
90 {
91 this.delimiter = delimiter;
92 }
93
94 }