Example usage for org.jdom2.transform JDOMSource getDocument

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

Introduction

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

Prototype

public Document getDocument() 

Source Link

Document

Returns the source document 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");
    }/* ww w. j  ava 2s  .com*/
    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);
}