导航菜单

页面标题

页面副标题

Clean Center v0.5.5 - DocumentSource.java 源代码

正在查看: Clean Center v0.5.5 应用的 DocumentSource.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.wxiwei.office.fc.dom4j.io;

import com.wxiwei.office.fc.dom4j.Document;
import com.wxiwei.office.fc.dom4j.Node;
import javax.xml.transform.sax.SAXSource;
import org.xml.sax.InputSource;
import org.xml.sax.XMLFilter;
import org.xml.sax.XMLReader;

public class DocumentSource extends SAXSource {
    public static final String DOM4J_FEATURE = "http://org.dom4j.io.DoucmentSource/feature";
    private XMLReader xmlReader = new SAXWriter();

    @Override
    public XMLReader getXMLReader() {
        return this.xmlReader;
    }

    public DocumentSource(Node node) {
        setDocument(node.getDocument());
    }

    public DocumentSource(Document document) {
        setDocument(document);
    }

    public Document getDocument() {
        return ((DocumentInputSource) getInputSource()).getDocument();
    }

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

    @Override
    public void setInputSource(InputSource inputSource) throws UnsupportedOperationException {
        if (inputSource instanceof DocumentInputSource) {
            super.setInputSource((DocumentInputSource) inputSource);
            return;
        }
        throw new UnsupportedOperationException();
    }

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