Example usage for org.jdom2.transform JDOMSource getXMLReader

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

Introduction

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

Prototype

@Override
public XMLReader getXMLReader() 

Source Link

Document

Returns the XMLReader to be used for the 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");
    }//w ww . j  av  a2  s. c  o m
    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);
}