View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.config.converters;
8   
9   import org.mule.api.MuleContext;
10  import org.mule.api.expression.PropertyConverter;
11  import org.mule.api.transformer.Transformer;
12  
13  import java.util.LinkedList;
14  import java.util.List;
15  import java.util.StringTokenizer;
16  
17  /**
18   * Converts a String list of Transformer names into a List of {@link org.mule.api.transformer.Transformer} objects.
19   */
20  public class TransformerConverter implements PropertyConverter
21  {
22      public static final String DELIM = ",";
23  
24      public Object convert(String property, MuleContext context)
25      {
26          if (null != property)
27          {
28              List<Transformer> transformers = new LinkedList<Transformer>();
29              StringTokenizer st = new StringTokenizer(property, DELIM);
30              while (st.hasMoreTokens())
31              {
32                  String key = st.nextToken().trim();
33                  Transformer transformer = context.getRegistry().lookupTransformer(key);
34  
35                  if (transformer == null)
36                  {
37                      throw new IllegalArgumentException(key);
38                  }
39                  transformers.add(transformer);
40              }
41              return transformers;
42          }
43          else
44          {
45              return null;
46          }
47  
48      }
49  
50      public Class getType()
51      {
52          return TransformerList.class;
53      }
54  }