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