📄 xmlfilterimpl.java
字号:
// XMLFilterImpl.java - base SAX2 filter implementation.// http://www.saxproject.org// Written by David Megginson// NO WARRANTY! This class is in the Public Domain.// $Id: XMLFilterImpl.java,v 1.12 2004/12/11 15:41:10 dog Exp $package org.xml.sax.helpers;import java.io.IOException;import org.xml.sax.XMLReader;import org.xml.sax.XMLFilter;import org.xml.sax.InputSource;import org.xml.sax.Locator;import org.xml.sax.Attributes;import org.xml.sax.EntityResolver;import org.xml.sax.DTDHandler;import org.xml.sax.ContentHandler;import org.xml.sax.ErrorHandler;import org.xml.sax.SAXException;import org.xml.sax.SAXParseException;import org.xml.sax.SAXNotSupportedException;import org.xml.sax.SAXNotRecognizedException;/** * Base class for deriving an XML filter. * * <blockquote> * <em>This module, both source code and documentation, is in the * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> * for further information. * </blockquote> * * <p>This class is designed to sit between an {@link org.xml.sax.XMLReader * XMLReader} and the client application's event handlers. By default, it * does nothing but pass requests up to the reader and events * on to the handlers unmodified, but subclasses can override * specific methods to modify the event stream or the configuration * requests as they pass through.</p> * * @since SAX 2.0 * @author David Megginson * @version 2.0.1 (sax2r2) * @see org.xml.sax.XMLFilter * @see org.xml.sax.XMLReader * @see org.xml.sax.EntityResolver * @see org.xml.sax.DTDHandler * @see org.xml.sax.ContentHandler * @see org.xml.sax.ErrorHandler */public class XMLFilterImpl implements XMLFilter, EntityResolver, DTDHandler, ContentHandler, ErrorHandler{ //////////////////////////////////////////////////////////////////// // Constructors. //////////////////////////////////////////////////////////////////// /** * Construct an empty XML filter, with no parent. * * <p>This filter will have no parent: you must assign a parent * before you start a parse or do any configuration with * setFeature or setProperty, unless you use this as a pure event * consumer rather than as an {@link XMLReader}.</p> * * @see org.xml.sax.XMLReader#setFeature * @see org.xml.sax.XMLReader#setProperty * @see #setParent */ public XMLFilterImpl () { super(); } /** * Construct an XML filter with the specified parent. * * @see #setParent * @see #getParent */ public XMLFilterImpl (XMLReader parent) { super(); setParent(parent); } //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.XMLFilter. //////////////////////////////////////////////////////////////////// /** * Set the parent reader. * * <p>This is the {@link org.xml.sax.XMLReader XMLReader} from which * this filter will obtain its events and to which it will pass its * configuration requests. The parent may itself be another filter.</p> * * <p>If there is no parent reader set, any attempt to parse * or to set or get a feature or property will fail.</p> * * @param parent The parent XML reader. * @see #getParent */ public void setParent (XMLReader parent) { this.parent = parent; } /** * Get the parent reader. * * @return The parent XML reader, or null if none is set. * @see #setParent */ public XMLReader getParent () { return parent; } //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.XMLReader. //////////////////////////////////////////////////////////////////// /** * Set the value of a feature. * * <p>This will always fail if the parent is null.</p> * * @param name The feature name. * @param value The requested feature value. * @exception org.xml.sax.SAXNotRecognizedException If the feature * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the * parent recognizes the feature name but * cannot set the requested value. */ public void setFeature (String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException { if (parent != null) { parent.setFeature(name, value); } else { throw new SAXNotRecognizedException("Feature: " + name); } } /** * Look up the value of a feature. * * <p>This will always fail if the parent is null.</p> * * @param name The feature name. * @return The current value of the feature. * @exception org.xml.sax.SAXNotRecognizedException If the feature * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the * parent recognizes the feature name but * cannot determine its value at this time. */ public boolean getFeature (String name) throws SAXNotRecognizedException, SAXNotSupportedException { if (parent != null) { return parent.getFeature(name); } else { throw new SAXNotRecognizedException("Feature: " + name); } } /** * Set the value of a property. * * <p>This will always fail if the parent is null.</p> * * @param name The property name. * @param value The requested property value. * @exception org.xml.sax.SAXNotRecognizedException If the property * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the * parent recognizes the property name but * cannot set the requested value. */ public void setProperty (String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException { if (parent != null) { parent.setProperty(name, value); } else { throw new SAXNotRecognizedException("Property: " + name); } } /** * Look up the value of a property. * * @param name The property name. * @return The current value of the property. * @exception org.xml.sax.SAXNotRecognizedException If the property * value can't be assigned or retrieved from the parent. * @exception org.xml.sax.SAXNotSupportedException When the * parent recognizes the property name but * cannot determine its value at this time. */ public Object getProperty (String name) throws SAXNotRecognizedException, SAXNotSupportedException { if (parent != null) { return parent.getProperty(name); } else { throw new SAXNotRecognizedException("Property: " + name); } } /** * Set the entity resolver. * * @param resolver The new entity resolver. */ public void setEntityResolver (EntityResolver resolver) { entityResolver = resolver; } /** * Get the current entity resolver. * * @return The current entity resolver, or null if none was set. */ public EntityResolver getEntityResolver () { return entityResolver; } /** * Set the DTD event handler. * * @param handler the new DTD handler */ public void setDTDHandler (DTDHandler handler) { dtdHandler = handler; } /** * Get the current DTD event handler. * * @return The current DTD handler, or null if none was set. */ public DTDHandler getDTDHandler () { return dtdHandler; } /** * Set the content event handler. * * @param handler the new content handler */ public void setContentHandler (ContentHandler handler) { contentHandler = handler; } /** * Get the content event handler. * * @return The current content handler, or null if none was set. */ public ContentHandler getContentHandler () { return contentHandler; } /** * Set the error event handler. * * @param handler the new error handler */ public void setErrorHandler (ErrorHandler handler) { errorHandler = handler; } /** * Get the current error event handler. * * @return The current error handler, or null if none was set. */ public ErrorHandler getErrorHandler () { return errorHandler; } /** * Parse a document. * * @param input The input source for the document entity. * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. * @exception java.io.IOException An IO exception from the parser, * possibly from a byte stream or character stream * supplied by the application. */ public void parse (InputSource input) throws SAXException, IOException { setupParse(); parent.parse(input); } /** * Parse a document. * * @param systemId The system identifier as a fully-qualified URI. * @exception org.xml.sax.SAXException Any SAX exception, possibly * wrapping another exception. * @exception java.io.IOException An IO exception from the parser, * possibly from a byte stream or character stream * supplied by the application. */ public void parse (String systemId) throws SAXException, IOException { parse(new InputSource(systemId)); } //////////////////////////////////////////////////////////////////// // Implementation of org.xml.sax.EntityResolver. ////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -