可爱宝贝母亲节-公主宝贝壁纸 v16.07.1609版本的 MD5 值为:5e5769ced21a68d2756bcdffdb4535fe

以下内容为反编译后的 JDOMSource.java 源代码,内容仅作参考


package org.jdom2.transform;

import java.io.InputStream;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import javax.xml.transform.sax.SAXSource;
import org.jdom2.Content;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.output.SAXOutputter;
import org.jdom2.output.XMLOutputter;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.XMLFilter;
import org.xml.sax.XMLReader;
public class JDOMSource extends SAXSource {
    public static final String JDOM_FEATURE = "http://jdom.org/jdom2/transform/JDOMSource/feature";
    private EntityResolver resolver;
    private XMLReader xmlReader;

    public class DocumentReader extends SAXOutputter implements XMLReader {
        @Override
        public void parse(String str) {
            throw new SAXNotSupportedException("Only JDOM Documents are supported as input");
        }

        @Override
        public void parse(InputSource inputSource) {
            if (!(inputSource instanceof JDOMInputSource)) {
                throw new SAXNotSupportedException("Only JDOM Documents are supported as input");
            }
            try {
                Document documentSource = ((JDOMInputSource) inputSource).getDocumentSource();
                if (documentSource != null) {
                    output(documentSource);
                } else {
                    output(((JDOMInputSource) inputSource).getListSource());
                }
            } catch (JDOMException e) {
                throw new SAXException(e.getMessage(), e);
            }
        }
    }

    public class JDOMInputSource extends InputSource {
        private Document docsource;
        private List<? extends Content> listsource;

        public JDOMInputSource(List<? extends Content> list) {
            this.docsource = null;
            this.listsource = null;
            this.listsource = list;
        }

        public JDOMInputSource(Document document) {
            this.docsource = null;
            this.listsource = null;
            this.docsource = document;
        }

        @Override
        public Reader getCharacterStream() {
            if (this.docsource != null) {
                return new StringReader(new XMLOutputter().outputString(this.docsource));
            }
            if (this.listsource != null) {
                return new StringReader(new XMLOutputter().outputString(this.listsource));
            }
            return null;
        }

        public Document getDocumentSource() {
            return this.docsource;
        }

        public List<? extends Content> getListSource() {
            return this.listsource;
        }

        public Object getSource() {
            return this.docsource == null ? this.listsource : this.docsource;
        }

        @Override
        public void setByteStream(InputStream inputStream) {
            throw new UnsupportedOperationException();
        }

        @Override
        public void setCharacterStream(Reader reader) {
            throw new UnsupportedOperationException();
        }
    }

    public JDOMSource(List<? extends Content> list) {
        this.xmlReader = null;
        this.resolver = null;
        setNodes(list);
    }

    public JDOMSource(Document document) {
        this(document, null);
    }

    public JDOMSource(Document document, EntityResolver entityResolver) {
        this.xmlReader = null;
        this.resolver = null;
        setDocument(document);
        this.resolver = entityResolver;
        if (document == null || document.getBaseURI() == null) {
            return;
        }
        super.setSystemId(document.getBaseURI());
    }

    public JDOMSource(Element element) {
        this.xmlReader = null;
        this.resolver = null;
        ArrayList arrayList = new ArrayList();
        arrayList.add(element);
        setNodes(arrayList);
    }

    private XMLReader buildDocumentReader() {
        DocumentReader documentReader = new DocumentReader();
        if (this.resolver != null) {
            documentReader.setEntityResolver(this.resolver);
        }
        return documentReader;
    }

    public Document getDocument() {
        Object source = ((JDOMInputSource) getInputSource()).getSource();
        if (source instanceof Document) {
            return (Document) source;
        }
        return null;
    }

    public List<? extends Content> getNodes() {
        return ((JDOMInputSource) getInputSource()).getListSource();
    }

    @Override
    public XMLReader getXMLReader() {
        if (this.xmlReader == null) {
            this.xmlReader = buildDocumentReader();
        }
        return this.xmlReader;
    }

    public void setDocument(Document document) {
        super.setInputSource(new JDOMInputSource(document));
    }

    @Override
    public void setInputSource(InputSource inputSource) {
        throw new UnsupportedOperationException();
    }

    public void setNodes(List<? extends Content> list) {
        super.setInputSource(new JDOMInputSource(list));
    }

    @Override
    public void setXMLReader(XMLReader xMLReader) {
        if (!(xMLReader instanceof XMLFilter)) {
            throw new UnsupportedOperationException();
        }
        XMLReader xMLReader2 = xMLReader;
        while (true) {
            XMLFilter xMLFilter = (XMLFilter) xMLReader2;
            if (!(xMLFilter.getParent() instanceof XMLFilter)) {
                xMLFilter.setParent(buildDocumentReader());
                this.xmlReader = xMLReader;
                return;
            }
            xMLReader2 = (XMLFilter) xMLFilter.getParent();
        }
    }
}