package feed.parser; import javax.xml.stream.XMLStreamReader; import org.apache.commons.lang3.StringUtils; import feed.parser.Enclosure.Type; public class EnclosureProcessor implements FeedEntryProcessor { private final Type encType; public EnclosureProcessor(Type encType) { this.encType = encType; } @Override public void process(FeedChannel feed_channel, XMLStreamReader stax_xml_reader) { FeedEntry feed_entry = feed_channel.getLastFeedEntry(); try { switch (encType) { case RSS: rssMedia(stax_xml_reader, feed_entry); break; case YAHOO_MEDIA: yahooMedia(stax_xml_reader, feed_entry); break; default: break; } } catch (Throwable e) { throw new RuntimeException(e); } } private void rssMedia(XMLStreamReader stax_xml_reader, FeedEntry feed_entry) { int lenght = parse(stax_xml_reader.getAttributeValue("", "lenght")); String type = stax_xml_reader.getAttributeValue("", "type"); String url = stax_xml_reader.getAttributeValue("", "url"); if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(url)) { Enclosure enclosure = new Enclosure(lenght, type, url); feed_entry.setEnclosure(enclosure); } } private void yahooMedia(XMLStreamReader stax_xml_reader, FeedEntry feed_entry) { int lenght = 1; String type = stax_xml_reader.getAttributeValue("", "type"); String url = stax_xml_reader.getAttributeValue("", "url"); if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(url)) { Enclosure enclosure = new Enclosure(lenght, type, url); feed_entry.setEnclosure(enclosure); } } private int parse(String s) { try { return Integer.parseInt(s); } catch (Throwable e) { return 1; } } }