title: Which Camel construct is suited for transforming?
body: <p>Apache Camel offers several ways of performing data transforms: its concept of the Transform EIP, custom DataFormats, as well as its allowance for custom Type Converters.</p>
  
  <p>I have a situation where I need to do a very complex transform from inside a Camel route. Should I be implementing my own Type Converter, my own DataFormat, or should I implement <code>org.apache.camel.Expression</code> and put all the transform stuff in there:</p>
  
  <pre><code>public class MyTransformer implements Expression {
      @Override
      public &lt;T&gt; T evaluate(Exchange arg0, Class&lt;T&gt; arg1) {
          // ...
      }
  }
  </code></pre>
  
  <p>I guess I'm confused about where/when it's appropriate to use your own Type Converter, when to use the <code>.transform(myTransformer)</code> processor, or when to use a custom DataFormat. Thanks in advance!</p>