可爱宝贝母亲节-公主宝贝壁纸 v16.07.1609版本的 MD5 值为:5e5769ced21a68d2756bcdffdb4535fe
以下内容为反编译后的 JDOMResult.java 源代码,内容仅作参考
package org.jdom2.transform;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.xml.transform.sax.SAXResult;
import org.jdom2.Content;
import org.jdom2.DefaultJDOMFactory;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMFactory;
import org.jdom2.input.sax.SAXHandler;
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import org.xml.sax.ext.LexicalHandler;
import org.xml.sax.helpers.XMLFilterImpl;
public class JDOMResult extends SAXResult {
public static final String JDOM_FEATURE = "http://jdom.org/jdom2/transform/JDOMResult/feature";
private List<Content> resultlist = null;
private Document resultdoc = null;
private boolean queried = false;
private JDOMFactory factory = null;
public class DocumentBuilder extends XMLFilterImpl implements LexicalHandler {
private FragmentHandler saxHandler = null;
private boolean startDocumentReceived = false;
public DocumentBuilder() {
}
private void ensureInitialization() {
if (this.startDocumentReceived) {
return;
}
startDocument();
}
@Override
public void characters(char[] cArr, int i, int i2) {
ensureInitialization();
super.characters(cArr, i, i2);
}
@Override
public void comment(char[] cArr, int i, int i2) {
ensureInitialization();
this.saxHandler.comment(cArr, i, i2);
}
@Override
public void endCDATA() {
this.saxHandler.endCDATA();
}
@Override
public void endDTD() {
this.saxHandler.endDTD();
}
@Override
public void endEntity(String str) {
this.saxHandler.endEntity(str);
}
public List<Content> getResult() {
if (this.saxHandler != null) {
List<Content> result = this.saxHandler.getResult();
this.saxHandler = null;
this.startDocumentReceived = false;
return result;
}
return null;
}
@Override
public void ignorableWhitespace(char[] cArr, int i, int i2) {
ensureInitialization();
super.ignorableWhitespace(cArr, i, i2);
}
@Override
public void processingInstruction(String str, String str2) {
ensureInitialization();
super.processingInstruction(str, str2);
}
@Override
public void skippedEntity(String str) {
ensureInitialization();
super.skippedEntity(str);
}
@Override
public void startCDATA() {
ensureInitialization();
this.saxHandler.startCDATA();
}
@Override
public void startDTD(String str, String str2, String str3) {
ensureInitialization();
this.saxHandler.startDTD(str, str2, str3);
}
@Override
public void startDocument() {
this.startDocumentReceived = true;
JDOMResult.this.setResult(null);
this.saxHandler = new FragmentHandler(JDOMResult.this.getFactory());
super.setContentHandler(this.saxHandler);
super.startDocument();
}
@Override
public void startElement(String str, String str2, String str3, Attributes attributes) {
ensureInitialization();
super.startElement(str, str2, str3, attributes);
}
@Override
public void startEntity(String str) {
ensureInitialization();
this.saxHandler.startEntity(str);
}
@Override
public void startPrefixMapping(String str, String str2) {
ensureInitialization();
super.startPrefixMapping(str, str2);
}
}
public class FragmentHandler extends SAXHandler {
private Element dummyRoot;
public FragmentHandler(JDOMFactory jDOMFactory) {
super(jDOMFactory);
this.dummyRoot = new Element("root", null, null);
pushElement(this.dummyRoot);
}
private List<Content> getDetachedContent(Element element) {
List<Content> content = element.getContent();
ArrayList arrayList = new ArrayList(content.size());
while (content.size() != 0) {
arrayList.add(content.remove(0));
}
return arrayList;
}
public List<Content> getResult() {
try {
flushCharacters();
} catch (SAXException e) {
}
return getDetachedContent(this.dummyRoot);
}
}
public JDOMResult() {
DocumentBuilder documentBuilder = new DocumentBuilder();
super.setHandler(documentBuilder);
super.setLexicalHandler(documentBuilder);
}
private void retrieveResult() {
if (this.resultlist == null && this.resultdoc == null) {
setResult(((DocumentBuilder) getHandler()).getResult());
}
}
public Document getDocument() {
Document document;
retrieveResult();
if (this.resultdoc != null) {
document = this.resultdoc;
} else if (this.resultlist == null || this.queried) {
document = null;
} else {
try {
JDOMFactory factory = getFactory();
if (factory == null) {
factory = new DefaultJDOMFactory();
}
document = factory.document(null);
document.setContent(this.resultlist);
this.resultdoc = document;
this.resultlist = null;
} catch (RuntimeException e) {
return null;
}
}
this.queried = true;
return document;
}
public JDOMFactory getFactory() {
return this.factory;
}
public List<Content> getResult() {
List<Content> emptyList = Collections.emptyList();
retrieveResult();
if (this.resultlist != null) {
emptyList = this.resultlist;
} else if (this.resultdoc != null && !this.queried) {
List<Content> content = this.resultdoc.getContent();
ArrayList arrayList = new ArrayList(content.size());
while (content.size() != 0) {
arrayList.add(content.remove(0));
}
this.resultlist = arrayList;
this.resultdoc = null;
emptyList = arrayList;
}
this.queried = true;
return emptyList;
}
public void setDocument(Document document) {
this.resultdoc = document;
this.resultlist = null;
this.queried = false;
}
public void setFactory(JDOMFactory jDOMFactory) {
this.factory = jDOMFactory;
}
@Override
public void setHandler(ContentHandler contentHandler) {
}
@Override
public void setLexicalHandler(LexicalHandler lexicalHandler) {
}
public void setResult(List<Content> list) {
this.resultlist = list;
this.queried = false;
}
}