/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * $Id$ */ #include XERCES_CPP_NAMESPACE_BEGIN SAX2XMLFilterImpl::SAX2XMLFilterImpl(SAX2XMLReader* parent) : fParentReader(0) , fDocHandler(0) , fDTDHandler(0) , fEntityResolver(0) , fErrorHandler(0) { setParent(parent); } SAX2XMLFilterImpl::~SAX2XMLFilterImpl() { } // --------------------------------------------------------------------------- // SAX2XMLFilterImpl: XMLFilter impl // --------------------------------------------------------------------------- void SAX2XMLFilterImpl::setParent(SAX2XMLReader* parent) { if(fParentReader) { fParentReader->setEntityResolver(0); fParentReader->setDTDHandler(0); fParentReader->setContentHandler(0); fParentReader->setErrorHandler(0); } fParentReader=parent; if(fParentReader) { fParentReader->setEntityResolver(this); fParentReader->setDTDHandler(this); fParentReader->setContentHandler(this); fParentReader->setErrorHandler(this); } } bool SAX2XMLFilterImpl::getExitOnFirstFatalError() const { if(fParentReader) fParentReader->getExitOnFirstFatalError(); return false; } bool SAX2XMLFilterImpl::getValidationConstraintFatal() const { if(fParentReader) fParentReader->getValidationConstraintFatal(); return false; } Grammar* SAX2XMLFilterImpl::getRootGrammar() { if(fParentReader) fParentReader->getRootGrammar(); return NULL; } const XMLCh* SAX2XMLFilterImpl::getURIText(unsigned int uriId) const { if(fParentReader) fParentReader->getURIText(uriId); return NULL; } XMLFilePos SAX2XMLFilterImpl::getSrcOffset() const { if(fParentReader) fParentReader->getSrcOffset(); return 0; } // --------------------------------------------------------------------------- // SAX2XMLFilterImpl Validator functions // --------------------------------------------------------------------------- void SAX2XMLFilterImpl::setValidator(XMLValidator* valueToAdopt) { if(fParentReader) fParentReader->setValidator(valueToAdopt); } XMLValidator* SAX2XMLFilterImpl::getValidator() const { if(fParentReader) return fParentReader->getValidator(); return 0; } // --------------------------------------------------------------------------- // SAX2XMLReader Interface // --------------------------------------------------------------------------- XMLSize_t SAX2XMLFilterImpl::getErrorCount() const { if(fParentReader) return fParentReader->getErrorCount(); return 0; } void SAX2XMLFilterImpl::setExitOnFirstFatalError(const bool newState) { if(fParentReader) fParentReader->setExitOnFirstFatalError(newState); } void SAX2XMLFilterImpl::setValidationConstraintFatal(const bool newState) { if(fParentReader) fParentReader->setValidationConstraintFatal(newState); } void SAX2XMLFilterImpl::parse (const InputSource& source) { if(fParentReader) fParentReader->parse(source); } void SAX2XMLFilterImpl::parse (const XMLCh* const systemId) { if(fParentReader) fParentReader->parse(systemId); } void SAX2XMLFilterImpl::parse (const char* const systemId) { if(fParentReader) fParentReader->parse(systemId); } // --------------------------------------------------------------------------- // SAX2XMLFilterImpl: Progressive parse methods // --------------------------------------------------------------------------- bool SAX2XMLFilterImpl::parseFirst( const XMLCh* const systemId , XMLPScanToken& toFill) { if(fParentReader) return fParentReader->parseFirst(systemId, toFill); return false; } bool SAX2XMLFilterImpl::parseFirst( const char* const systemId , XMLPScanToken& toFill) { if(fParentReader) fParentReader->parseFirst(systemId, toFill); return false; } bool SAX2XMLFilterImpl::parseFirst( const InputSource& source , XMLPScanToken& toFill) { if(fParentReader) fParentReader->parseFirst(source, toFill); return false; } bool SAX2XMLFilterImpl::parseNext(XMLPScanToken& token) { if(fParentReader) fParentReader->parseNext(token); return false; } void SAX2XMLFilterImpl::parseReset(XMLPScanToken& token) { if(fParentReader) fParentReader->parseReset(token); } // --------------------------------------------------------------------------- // SAX2XMLFilterImpl: Features and Properties // --------------------------------------------------------------------------- void SAX2XMLFilterImpl::setFeature(const XMLCh* const name, const bool value) { if(fParentReader) fParentReader->setFeature(name,value); } bool SAX2XMLFilterImpl::getFeature(const XMLCh* const name) const { if(fParentReader) return fParentReader->getFeature(name); return false; } void SAX2XMLFilterImpl::setProperty(const XMLCh* const name, void* value) { if(fParentReader) fParentReader->setProperty(name,value); } void* SAX2XMLFilterImpl::getProperty(const XMLCh* const name) const { if(fParentReader) return fParentReader->getProperty(name); return NULL; } // --------------------------------------------------------------------------- // SAX2XMLFilterImpl: Grammar preparsing // --------------------------------------------------------------------------- Grammar* SAX2XMLFilterImpl::loadGrammar(const char* const systemId, const Grammar::GrammarType grammarType, const bool toCache) { if(fParentReader) return fParentReader->loadGrammar(systemId, grammarType, toCache); return NULL; } Grammar* SAX2XMLFilterImpl::loadGrammar(const XMLCh* const systemId, const Grammar::GrammarType grammarType, const bool toCache) { if(fParentReader) return fParentReader->loadGrammar(systemId, grammarType, toCache); return NULL; } Grammar* SAX2XMLFilterImpl::loadGrammar(const InputSource& source, const Grammar::GrammarType grammarType, const bool toCache) { if(fParentReader) return fParentReader->loadGrammar(source, grammarType, toCache); return NULL; } void SAX2XMLFilterImpl::resetCachedGrammarPool() { if(fParentReader) fParentReader->resetCachedGrammarPool(); } void SAX2XMLFilterImpl::setInputBufferSize(const XMLSize_t bufferSize) { if(fParentReader) fParentReader->setInputBufferSize(bufferSize); } Grammar* SAX2XMLFilterImpl::getGrammar(const XMLCh* const nameSpaceKey) { if(fParentReader) return fParentReader->getGrammar(nameSpaceKey); return NULL; } // ----------------------------------------------------------------------- // Implementation of the EntityResolver interface // ----------------------------------------------------------------------- InputSource* SAX2XMLFilterImpl::resolveEntity(const XMLCh* const publicId , const XMLCh* const systemId) { if(fEntityResolver) return fEntityResolver->resolveEntity(publicId, systemId); return 0; } // ----------------------------------------------------------------------- // Implementation of the DTDHandler interface // ----------------------------------------------------------------------- void SAX2XMLFilterImpl::notationDecl( const XMLCh* const name , const XMLCh* const publicId , const XMLCh* const systemId) { if(fDTDHandler) fDTDHandler->notationDecl(name, publicId, systemId); } void SAX2XMLFilterImpl::unparsedEntityDecl(const XMLCh* const name , const XMLCh* const publicId , const XMLCh* const systemId , const XMLCh* const notationName) { if(fDTDHandler) fDTDHandler->unparsedEntityDecl(name, publicId, systemId, notationName); } void SAX2XMLFilterImpl::resetDocType() { if(fDTDHandler) fDTDHandler->resetDocType(); } // ----------------------------------------------------------------------- // Implementation of the ContentHandler interface // ----------------------------------------------------------------------- void SAX2XMLFilterImpl::characters(const XMLCh* const chars , const XMLSize_t length) { if(fDocHandler) fDocHandler->characters(chars, length); } void SAX2XMLFilterImpl::endDocument() { if(fDocHandler) fDocHandler->endDocument(); } void SAX2XMLFilterImpl::endElement(const XMLCh* const uri , const XMLCh* const localname , const XMLCh* const qname) { if(fDocHandler) fDocHandler->endElement(uri, localname, qname); } void SAX2XMLFilterImpl::ignorableWhitespace(const XMLCh* const chars , const XMLSize_t length) { if(fDocHandler) fDocHandler->ignorableWhitespace(chars, length); } void SAX2XMLFilterImpl::processingInstruction(const XMLCh* const target , const XMLCh* const data) { if(fDocHandler) fDocHandler->processingInstruction(target, data); } void SAX2XMLFilterImpl::setDocumentLocator(const Locator* const locator) { if(fDocHandler) fDocHandler->setDocumentLocator(locator); } void SAX2XMLFilterImpl::startDocument() { if(fDocHandler) fDocHandler->startDocument(); } void SAX2XMLFilterImpl::startElement(const XMLCh* const uri , const XMLCh* const localname , const XMLCh* const qname , const Attributes& attrs) { if(fDocHandler) fDocHandler->startElement(uri, localname, qname, attrs); } void SAX2XMLFilterImpl::startPrefixMapping(const XMLCh* const prefix , const XMLCh* const uri) { if(fDocHandler) fDocHandler->startPrefixMapping(prefix, uri); } void SAX2XMLFilterImpl::endPrefixMapping(const XMLCh* const prefix) { if(fDocHandler) fDocHandler->endPrefixMapping(prefix); } void SAX2XMLFilterImpl::skippedEntity(const XMLCh* const name) { if(fDocHandler) fDocHandler->skippedEntity(name); } // ----------------------------------------------------------------------- // Implementation of the ErrorHandler interface // ----------------------------------------------------------------------- void SAX2XMLFilterImpl::warning(const SAXParseException& exc) { if(fErrorHandler) fErrorHandler->warning(exc); } void SAX2XMLFilterImpl::error(const SAXParseException& exc) { if(fErrorHandler) fErrorHandler->error(exc); } void SAX2XMLFilterImpl::fatalError(const SAXParseException& exc) { if(fErrorHandler) fErrorHandler->fatalError(exc); } void SAX2XMLFilterImpl::resetErrors() { if(fErrorHandler) fErrorHandler->resetErrors(); } XERCES_CPP_NAMESPACE_END