View Javadoc

1   /*
2    * $Id: TransformerDefinitionParser.java 11080 2008-02-27 16:25:01Z acooke $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.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  
11  package org.mule.config.spring.parsers.specific;
12  
13  import org.mule.config.spring.parsers.delegate.ParentContextDefinitionParser;
14  import org.mule.config.spring.parsers.generic.ChildDefinitionParser;
15  import org.mule.config.spring.parsers.generic.MuleOrphanDefinitionParser;
16  
17  /**
18   * This allows a transformer to be defined globally, or embedded within an endpoint
19   * (as either a normal or response transformer).
20   */
21  public class TransformerDefinitionParser extends ParentContextDefinitionParser
22  {
23  
24      public static final String TRANSFORMER = "transformer";
25      public static final String RESPONSE_TRANSFORMER = "responseTransformer";
26      public static final String RESPONSE_TRANSFORMERS = "response-transformers";
27  
28      public TransformerDefinitionParser(Class transformer)
29      {
30          super(MuleOrphanDefinitionParser.ROOT_ELEMENT, new MuleOrphanDefinitionParser(transformer, false));
31          and(RESPONSE_TRANSFORMERS, new ChildDefinitionParser(RESPONSE_TRANSFORMER, transformer));
32          otherwise(new ChildDefinitionParser(TRANSFORMER, transformer));
33      }
34  
35      /**
36       * For custom transformers
37       */
38      public TransformerDefinitionParser()
39      {
40          super(MuleOrphanDefinitionParser.ROOT_ELEMENT, new MuleOrphanDefinitionParser(false));
41          and(RESPONSE_TRANSFORMERS, new ChildDefinitionParser(RESPONSE_TRANSFORMER));
42          otherwise(new ChildDefinitionParser(TRANSFORMER));
43      }
44  
45  }