View Javadoc

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