可爱宝贝母亲节-公主宝贝壁纸 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();
}
}
}