Package com.commafeed.backend.rome

Source Code of com.commafeed.backend.rome.RSSRDF10Parser

package com.commafeed.backend.rome;

import java.util.List;

import org.apache.commons.collections4.CollectionUtils;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.Namespace;

import com.google.common.collect.Lists;
import com.rometools.rome.io.impl.RSS10Parser;

public class RSSRDF10Parser extends RSS10Parser {

  private static final String RSS_URI = "http://purl.org/rss/1.0/";
  private static final Namespace RSS_NS = Namespace.getNamespace(RSS_URI);

  public RSSRDF10Parser() {
    super("rss_1.0", RSS_NS);
  }

  @Override
  public boolean isMyType(Document document) {
    boolean ok = false;

    Element rssRoot = document.getRootElement();
    Namespace defaultNS = rssRoot.getNamespace();
    List<Namespace> additionalNSs = Lists.newArrayList(rssRoot.getAdditionalNamespaces());
    List<Element> children = rssRoot.getChildren();
    if (CollectionUtils.isNotEmpty(children)) {
      Element child = children.get(0);
      additionalNSs.add(child.getNamespace());
      additionalNSs.addAll(child.getAdditionalNamespaces());
    }

    ok = defaultNS != null && defaultNS.equals(getRDFNamespace());
    if (ok) {
      if (additionalNSs == null) {
        ok = false;
      } else {
        ok = false;
        for (int i = 0; !ok && i < additionalNSs.size(); i++) {
          ok = getRSSNamespace().equals(additionalNSs.get(i));
        }
      }
    }
    return ok;
  }
}
TOP

Related Classes of com.commafeed.backend.rome.RSSRDF10Parser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.