1
2
3
4
5
6
7
8
9
10
11 package org.mule.transformer.simple;
12
13 import org.mule.api.transformer.DiscoverableTransformer;
14 import org.mule.api.transformer.TransformerException;
15 import org.mule.transformer.AbstractTransformer;
16 import org.mule.transformer.types.DataTypeFactory;
17
18 import java.io.Serializable;
19
20 import org.apache.commons.lang.SerializationUtils;
21
22
23
24
25
26
27
28
29 public class SerializableToByteArray extends AbstractTransformer implements DiscoverableTransformer
30 {
31 private int priorityWeighting = DiscoverableTransformer.DEFAULT_PRIORITY_WEIGHTING;
32
33 public SerializableToByteArray()
34 {
35 this.registerSourceType(DataTypeFactory.create(Serializable.class));
36 this.setReturnDataType(DataTypeFactory.BYTE_ARRAY);
37 }
38
39 public boolean isAcceptMuleMessage()
40 {
41 return this.isSourceDataTypeSupported(DataTypeFactory.MULE_MESSAGE, true);
42 }
43
44 public void setAcceptMuleMessage(boolean value)
45 {
46 if (value)
47 {
48 this.registerSourceType(DataTypeFactory.MULE_MESSAGE);
49 }
50 else
51 {
52 this.unregisterSourceType(DataTypeFactory.MULE_MESSAGE);
53 }
54 }
55
56 @Override
57 public Object doTransform(Object src, String outputEncoding) throws TransformerException
58 {
59
60
61
62
63
64
65
66 try
67 {
68 return SerializationUtils.serialize((Serializable) src);
69 }
70 catch (Exception e)
71 {
72 throw new TransformerException(this, e);
73 }
74 }
75
76 public int getPriorityWeighting()
77 {
78 return priorityWeighting;
79 }
80
81 public void setPriorityWeighting(int priorityWeighting)
82 {
83 this.priorityWeighting = priorityWeighting;
84 }
85 }