Coverage Report - yarfraw.mapping.backward.impl.ToChannelRss10Impl
 
Classes in this File Line Coverage Branch Coverage Complexity
ToChannelRss10Impl
69% 
100% 
0
 
 1  
 package yarfraw.mapping.backward.impl;
 2  
 
 3  
 import static yarfraw.mapping.backward.impl.Rss10MappingUtils.toChannel;
 4  
 
 5  
 import javax.xml.bind.JAXBElement;
 6  
 
 7  
 import org.apache.commons.logging.Log;
 8  
 import org.apache.commons.logging.LogFactory;
 9  
 
 10  
 import yarfraw.core.datamodel.ChannelFeed;
 11  
 import yarfraw.core.datamodel.Image;
 12  
 import yarfraw.core.datamodel.TextInput;
 13  
 import yarfraw.core.datamodel.YarfrawException;
 14  
 import yarfraw.generated.rss10.elements.RDF;
 15  
 import yarfraw.generated.rss10.elements.TRss10Channel;
 16  
 import yarfraw.generated.rss10.elements.TRss10Image;
 17  
 import yarfraw.generated.rss10.elements.TRss10TextInput;
 18  
 import yarfraw.mapping.backward.ToChannelRss10;
 19  
 
 20  27
 public class ToChannelRss10Impl implements ToChannelRss10{
 21  15
   private static final ToChannelRss10 _instance = new ToChannelRss10Impl();
 22  15
   private static final Log LOG = LogFactory.getLog(ToChannelRss10Impl.class);
 23  15
   private ToChannelRss10Impl() {}
 24  
   public static ToChannelRss10 getInstance(){
 25  27
     return _instance;
 26  
   }
 27  
 
 28  
   @SuppressWarnings("unchecked")
 29  
   public ChannelFeed execute(RDF rdf) throws YarfrawException {
 30  27
     if(rdf == null){
 31  0
       LOG.warn("null rdf Element received, this is not normal. ");
 32  0
       return null;
 33  
     }
 34  27
     TRss10Channel ch = null;
 35  
     
 36  27
     TRss10TextInput ti = null;
 37  27
     TRss10Image img = null;
 38  27
     for(Object o : rdf.getChannelOrImageOrItem()){
 39  276
       if (o instanceof JAXBElement) {
 40  276
         Object val = ((JAXBElement)o).getValue();
 41  276
         if (val instanceof TRss10Channel) {
 42  27
           ch = (TRss10Channel) val;
 43  
           
 44  249
         }else if(val instanceof TRss10TextInput){
 45  9
           ti = (TRss10TextInput)val;
 46  240
         }else if(val instanceof TRss10Image){
 47  12
           img = (TRss10Image)val;
 48  
         }
 49  276
       }
 50  
     }
 51  27
     ChannelFeed channel = toChannel(ch, rdf);
 52  27
     if(img != null){
 53  12
       if(channel.getImageOrIcon() != null){
 54  12
         Rss10MappingUtils.populateImage(channel.getImageOrIcon(), img);
 55  
       }else{
 56  0
         LOG.warn("expecting an <image> element under <channel>");
 57  0
         Image newImage = new Image();
 58  0
         newImage.setResource(img.getAbout());
 59  0
         Rss10MappingUtils.populateImage(newImage, img);
 60  0
         channel.setImageOrIcon(newImage);
 61  
       }
 62  
     }
 63  27
     if(ti != null){
 64  9
       if(channel.getTexInput() != null){
 65  9
         Rss10MappingUtils.populateTextinput(channel.getTexInput(), ti);
 66  
       }else{
 67  0
         LOG.warn("expecting an <textinput> element under <channel>");
 68  0
         TextInput newTextInput = new TextInput();
 69  0
         newTextInput.setResource(ti.getAbout());
 70  0
         Rss10MappingUtils.populateTextinput(newTextInput, ti);
 71  0
         channel.setTexInput(newTextInput);
 72  
       }
 73  
       
 74  
     }
 75  27
     return channel;
 76  
   }
 77  
 }