Example usage for org.jdom2.transform JDOMSource getNodes

List of usage examples for org.jdom2.transform JDOMSource getNodes

Introduction

In this page you can find the example usage for org.jdom2.transform JDOMSource getNodes.

Prototype

public List<? extends Content> getNodes() 

Source Link

Document

Returns the source node list used by this TrAX source.

Usage

From source file:org.mycore.common.content.MCRSourceContent.java

License:Open Source License

public MCRSourceContent(Source source) {
    if (source == null) {
        throw new NullPointerException("Source cannot be null");
    }//from   www .  j a  va2s . c  om
    this.source = source;
    MCRContent baseContent = null;
    if (source instanceof JDOMSource) {
        JDOMSource src = (JDOMSource) source;
        Document xml = src.getDocument();
        if (xml != null) {
            baseContent = new MCRJDOMContent(xml);
        } else {
            for (Object node : src.getNodes()) {
                if (node instanceof Element) {
                    Element element = (Element) node;
                    Document doc = element.getDocument();
                    if (doc == null) {
                        baseContent = new MCRJDOMContent(element);
                    } else {
                        if (doc.getRootElement() == element) {
                            baseContent = new MCRJDOMContent(doc);
                        } else {
                            baseContent = new MCRJDOMContent((Element) element.clone());
                        }
                    }
                    break;
                } else if (node instanceof Document) {
                    baseContent = new MCRJDOMContent((Document) node);
                    break;
                }
            }
        }
    } else if (source instanceof SAXSource) {
        SAXSource src = (SAXSource) source;
        baseContent = new MCRSAXContent(src.getXMLReader(), src.getInputSource());
    } else if (source instanceof DOMSource) {
        Node node = ((DOMSource) source).getNode();
        baseContent = new MCRDOMContent(node.getOwnerDocument());
    } else if (source instanceof StreamSource) {
        InputStream inputStream = ((StreamSource) source).getInputStream();
        if (inputStream != null) {
            baseContent = new MCRStreamContent(inputStream);
        } else {
            try {
                URL url = new URL(source.getSystemId());
                baseContent = new MCRURLContent(url);
            } catch (MalformedURLException e) {
                throw new MCRException(
                        "Could not create instance of MCRURLContent for SYSTEMID: " + source.getSystemId(), e);
            }
        }
    }
    if (baseContent == null) {
        throw new MCRException("Could not get MCRContent from " + source.getClass().getCanonicalName()
                + ", systemId:" + source.getSystemId());
    }
    baseContent.setSystemId(getSystemId());
    this.setBaseContent(baseContent);
}