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