1
2
3
4
5
6
7 package org.mule.transformer.simple;
8
9 import org.mule.api.transformer.TransformerException;
10 import org.mule.config.i18n.MessageFactory;
11 import org.mule.transformer.AbstractTransformer;
12 import org.mule.transformer.types.DataTypeFactory;
13
14 import java.util.Map;
15
16
17
18
19
20 public class MapLookup extends AbstractTransformer
21 {
22
23 protected volatile Object key;
24
25 public MapLookup()
26 {
27 registerSourceType(DataTypeFactory.create(Map.class));
28 setReturnDataType(DataTypeFactory.OBJECT);
29 }
30
31 @Override
32 public Object doTransform(Object src, String encoding) throws TransformerException
33 {
34 if (src instanceof Map)
35 {
36 if (key != null)
37 {
38 return ((Map) src).get(key);
39 }
40 else
41 {
42 throw new TransformerException(MessageFactory
43 .createStaticMessage("Property 'key' must be set in order to use this transformer."));
44 }
45 }
46 else
47 {
48 throw new TransformerException(MessageFactory
49 .createStaticMessage("Message to transform must be of type java.util.Map"));
50 }
51 }
52
53 public Object getKey()
54 {
55 return key;
56 }
57
58 public void setKey(Object key)
59 {
60 this.key = key;
61 }
62
63 }