smarttransformerfactoryimpl.java

来自「JAVA的一些源码 JAVA2 STANDARD EDITION DEVELO」· Java 代码 · 共 481 行 · 第 1/2 页

JAVA
481
字号
	// All supported features should be listed here        String[] features = {            DOMSource.FEATURE,            DOMResult.FEATURE,            SAXSource.FEATURE,            SAXResult.FEATURE,            StreamSource.FEATURE,            StreamResult.FEATURE        };        // Inefficient, but it really does not matter in a function like this        for (int i=0; i<features.length; i++) {            if (name.equals(features[i])) return true;	}	// secure processing?	if (name.equals(XMLConstants.FEATURE_SECURE_PROCESSING)) {	    return featureSecureProcessing;	}        // Feature not supported        return false;    }    public URIResolver getURIResolver() {	return _uriresolver;     }     public void setURIResolver(URIResolver resolver) {	_uriresolver = resolver;    }    public Source getAssociatedStylesheet(Source source, String media,					  String title, String charset)	throws TransformerConfigurationException     {	if (_currFactory == null) {            createXSLTCTransformerFactory();        }	return _currFactory.getAssociatedStylesheet(source, media,		title, charset);    }    /**     * Create a Transformer object that copies the input document to the     * result. Uses the com.sun.org.apache.xalan.internal.processor.TransformerFactory.     * @return A Transformer object.     */    public Transformer newTransformer()	throws TransformerConfigurationException     {	if (_xalanFactory == null) {            createXalanTransformerFactory();        }	if (_errorlistener != null) {	    _xalanFactory.setErrorListener(_errorlistener);	    	}	if (_uriresolver != null) {	    _xalanFactory.setURIResolver(_uriresolver);	} 	_currFactory = _xalanFactory;	 	return _currFactory.newTransformer();     }    /**     * Create a Transformer object that from the input stylesheet      * Uses the com.sun.org.apache.xalan.internal.processor.TransformerFactory.     * @param source the stylesheet.     * @return A Transformer object.     */    public Transformer newTransformer(Source source) throws	TransformerConfigurationException     {        if (_xalanFactory == null) {            createXalanTransformerFactory();        }	if (_errorlistener != null) {	    _xalanFactory.setErrorListener(_errorlistener);	    	}	if (_uriresolver != null) {	    _xalanFactory.setURIResolver(_uriresolver);	} 	_currFactory = _xalanFactory;	 	return _currFactory.newTransformer(source);     }    /**     * Create a Templates object that from the input stylesheet      * Uses the com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactory.     * @param source the stylesheet.     * @return A Templates object.     */    public Templates newTemplates(Source source)	throws TransformerConfigurationException     {        if (_xsltcFactory == null) {            createXSLTCTransformerFactory();        }	if (_errorlistener != null) {	    _xsltcFactory.setErrorListener(_errorlistener);	    	}	if (_uriresolver != null) {	    _xsltcFactory.setURIResolver(_uriresolver);	} 	_currFactory = _xsltcFactory;	 	return _currFactory.newTemplates(source);     }    /**     * Get a TemplatesHandler object that can process SAX ContentHandler     * events into a Templates object. Uses the     * com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactory.     */    public TemplatesHandler newTemplatesHandler() 	throws TransformerConfigurationException     {        if (_xsltcFactory == null) {            createXSLTCTransformerFactory();        }	if (_errorlistener != null) {	    _xsltcFactory.setErrorListener(_errorlistener);	    	}	if (_uriresolver != null) {	    _xsltcFactory.setURIResolver(_uriresolver);	}	return _xsltcFactory.newTemplatesHandler();    }    /**     * Get a TransformerHandler object that can process SAX ContentHandler     * events based on a copy transformer.      * Uses com.sun.org.apache.xalan.internal.processor.TransformerFactory.      */    public TransformerHandler newTransformerHandler() 	throws TransformerConfigurationException     {        if (_xalanFactory == null) {            createXalanTransformerFactory();        }	if (_errorlistener != null) {	    _xalanFactory.setErrorListener(_errorlistener);	    	}	if (_uriresolver != null) {	    _xalanFactory.setURIResolver(_uriresolver);	}	return _xalanFactory.newTransformerHandler();     }    /**     * Get a TransformerHandler object that can process SAX ContentHandler     * events based on a transformer specified by the stylesheet Source.      * Uses com.sun.org.apache.xalan.internal.processor.TransformerFactory.      */    public TransformerHandler newTransformerHandler(Source src) 	throws TransformerConfigurationException     {        if (_xalanFactory == null) {            createXalanTransformerFactory();        }	if (_errorlistener != null) {	    _xalanFactory.setErrorListener(_errorlistener);	    	}	if (_uriresolver != null) {	    _xalanFactory.setURIResolver(_uriresolver);	}	return _xalanFactory.newTransformerHandler(src);     }    /**     * Get a TransformerHandler object that can process SAX ContentHandler     * events based on a transformer specified by the stylesheet Source.      * Uses com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactory.      */    public TransformerHandler newTransformerHandler(Templates templates) 	throws TransformerConfigurationException      {        if (_xsltcFactory == null) {            createXSLTCTransformerFactory();        }	if (_errorlistener != null) {	    _xsltcFactory.setErrorListener(_errorlistener);	    	}	if (_uriresolver != null) {	    _xsltcFactory.setURIResolver(_uriresolver);	}        return _xsltcFactory.newTransformerHandler(templates);    }    /**     * Create an XMLFilter that uses the given source as the     * transformation instructions. Uses     * com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactory.     */    public XMLFilter newXMLFilter(Source src) 	throws TransformerConfigurationException {        if (_xsltcFactory == null) {            createXSLTCTransformerFactory();        }	if (_errorlistener != null) {	    _xsltcFactory.setErrorListener(_errorlistener);	    	}	if (_uriresolver != null) {	    _xsltcFactory.setURIResolver(_uriresolver);	}	Templates templates = _xsltcFactory.newTemplates(src);	if (templates == null ) return null;	return newXMLFilter(templates);     }    /*     * Create an XMLFilter that uses the given source as the     * transformation instructions. Uses     * com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactory.     */    public XMLFilter newXMLFilter(Templates templates) 	throws TransformerConfigurationException {	try {            return new com.sun.org.apache.xalan.internal.xsltc.trax.TrAXFilter(templates);        }        catch(TransformerConfigurationException e1) {            if (_xsltcFactory == null) {                createXSLTCTransformerFactory();            }	    ErrorListener errorListener = _xsltcFactory.getErrorListener();            if(errorListener != null) {                try {                    errorListener.fatalError(e1);                    return null;                }                catch( TransformerException e2) {                    new TransformerConfigurationException(e2);                }            }            throw e1;        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?