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