From 78bb3387b15d15d766fb5d17a99612f0480f2bee Mon Sep 17 00:00:00 2001 From: Adrian Kummerländer Date: Thu, 5 Jun 2014 20:44:26 +0200 Subject: Implemented ErrorMultiplexer as primary error handler * ErrorMultiplexer is derived from both xercesc::ErrorHandler and xalan::ProblemListener * registers itself as XalanTransformer's ErrorHandler and ProblemListener * distributes captured errors and warnings to all registered ErrorMultiplexer::Receiver instances ** ErrorCapacitor implements the ErrorMultiplexer::Receiver interface and as such registers itself in a given ErrorMultiplexer instance ** ErrorMultiplexer reduces the different xalan and xercesc internal error classifications into either warnings or errors * this was implemented to make it possible to easily differentiate between warnings and errors ** previously warnings were treated as errors ** ErrorCapacitor ignores warnings and only captures errors ** WarningCapacitor will be implemented to handle warnings during XSLT processing --- src/support/error_capacitor.h | 82 ------------------------------------------- 1 file changed, 82 deletions(-) delete mode 100644 src/support/error_capacitor.h (limited to 'src/support/error_capacitor.h') diff --git a/src/support/error_capacitor.h b/src/support/error_capacitor.h deleted file mode 100644 index b94d5f8..0000000 --- a/src/support/error_capacitor.h +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef INPUTXSLT_SRC_SUPPORT_ERROR_CAPACITOR_H_ -#define INPUTXSLT_SRC_SUPPORT_ERROR_CAPACITOR_H_ - -#include - -#include -#include - -#include -#include -#include - -#include "common.h" - -namespace InputXSLT { - -class ErrorCapacitor : public xercesc::ErrorHandler, - public xalan::ProblemListener { - public: - class exception; - - typedef std::vector error_cache; - typedef std::unique_ptr error_cache_ptr; - - ErrorCapacitor(xalan::XalanTransformer*); - ~ErrorCapacitor(); - - void discharge(); - - virtual void warning(const xercesc::SAXParseException&); - virtual void error(const xercesc::SAXParseException&); - virtual void fatalError(const xercesc::SAXParseException&); - virtual void resetErrors(); - - virtual void problem( - xalan::ProblemListenerBase::eSource, - xalan::ProblemListenerBase::eClassification, - const xalan::XalanDOMString&, - const xalan::Locator*, - const xalan::XalanNode* - ); - - virtual void problem( - xalan::ProblemListenerBase::eSource, - xalan::ProblemListenerBase::eClassification, - const xalan::XalanDOMString&, - const xalan::XalanNode* - ); - - virtual void problem( - xalan::ProblemListenerBase::eSource, - xalan::ProblemListenerBase::eClassification, - const xalan::XalanNode*, - const xalan::ElemTemplateElement*, - const xalan::XalanDOMString&, - const xalan::XalanDOMChar*, - xalan::XalanFileLoc, - xalan::XalanFileLoc - ); - - virtual void setPrintWriter(xalan::PrintWriter*); - - private: - xalan::XalanTransformer* const transformer_; - error_cache_ptr error_cache_; - -}; - -class ErrorCapacitor::exception { - public: - exception(error_cache_ptr); - - const error_cache* getCachedErrors() const; - - private: - error_cache_ptr error_cache_; - -}; - -} - -#endif // INPUTXSLT_SRC_SUPPORT_ERROR_CAPACITOR_H_ -- cgit v1.2.3