Coverage Report - org.mule.transformer.TransformerCollection
 
Classes in this File Line Coverage Branch Coverage Complexity
TransformerCollection
64%
14/22
50%
6/12
3.667
 
 1  
 /*
 2  
  * $Id: TransformerCollection.java 10489 2008-01-23 17:53:38Z dfeist $
 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  
 package org.mule.transformer;
 11  
 
 12  
 import org.mule.api.MuleMessage;
 13  
 import org.mule.api.transformer.Transformer;
 14  
 import org.mule.api.transformer.TransformerException;
 15  
 
 16  
 import java.util.Arrays;
 17  
 import java.util.Iterator;
 18  
 import java.util.List;
 19  
 
 20  
 /** TODO */
 21  
 public class TransformerCollection extends AbstractMessageAwareTransformer
 22  
 {
 23  
     private List transformers;
 24  
 
 25  
     public TransformerCollection(List transformers)
 26  0
     {
 27  0
         if (transformers.size() < 1)
 28  
         {
 29  0
             throw new IllegalArgumentException("You must set at least one transformer");
 30  
         }
 31  0
         this.transformers = transformers;
 32  0
     }
 33  
 
 34  
     public TransformerCollection(Transformer[] transformers)
 35  14
     {
 36  14
         if (transformers.length < 1)
 37  
         {
 38  0
             throw new IllegalArgumentException("You must set at least one transformer");
 39  
         }
 40  14
         this.transformers = Arrays.asList(transformers);
 41  14
     }
 42  
 
 43  
     public Object transform(MuleMessage message, String outputEncoding) throws TransformerException
 44  
     {
 45  14
         MuleMessage result = message;
 46  14
         Object temp = message;
 47  14
         Transformer lastTransformer = null;
 48  14
         for (Iterator iterator = transformers.iterator(); iterator.hasNext();)
 49  
         {
 50  26
             lastTransformer = (Transformer) iterator.next();
 51  26
             temp = lastTransformer.transform(temp);
 52  22
             if (temp instanceof MuleMessage)
 53  
             {
 54  0
                 result = (MuleMessage) temp;
 55  
             }
 56  
             else
 57  
             {
 58  22
                 result.setPayload(temp);
 59  
             }
 60  
         }
 61  10
         if (lastTransformer != null && lastTransformer.getReturnClass().equals(MuleMessage.class))
 62  
         {
 63  0
             return result;
 64  
         }
 65  
         else
 66  
         {
 67  10
             return result.getPayload();
 68  
         }
 69  
     }
 70  
 }