From 79d3e2bdfd441d6eba2f22af78d5bea5e488daf1 Mon Sep 17 00:00:00 2001 From: Adrian Kummerländer Date: Fri, 30 May 2014 22:19:32 +0200 Subject: Rewrote error handling based on exceptions * ErrorHandler is replaced by ErrorCapacitor ** temporarily registers itself as both the ProblemListener and ErrorHandler of a given XalanTransformer instance ** deregisters itself on destruction ** collects all problems and errors during its lifetime inside a internal std::vector instance ** if this instance is not empty it is thrown contained within a ErrorCapacitor::exception by the member method ErrorCapacitor::discharge * this enables using the same code for handling transformation compilation and generation errors and problems * updated test frontend accordingly --- src/support/error_handler.h | 67 --------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 src/support/error_handler.h (limited to 'src/support/error_handler.h') diff --git a/src/support/error_handler.h b/src/support/error_handler.h deleted file mode 100644 index 02d741e..0000000 --- a/src/support/error_handler.h +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef INPUTXSLT_SRC_SUPPORT_ERROR_HANDLER_H_ -#define INPUTXSLT_SRC_SUPPORT_ERROR_HANDLER_H_ - -#include -#include - -#include -#include -#include - -#include "common.h" - -namespace InputXSLT { - -class ErrorHandler : public xercesc::ErrorHandler, - public xalan::ProblemListener { - public: - typedef std::vector error_cache; - typedef std::unique_ptr error_cache_ptr; - - ErrorHandler(); - - 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::XalanNode*, - const xalan::ElemTemplateElement*, - const xalan::XalanDOMString&, - const xalan::XalanDOMChar*, - xalan::XalanFileLoc, - xalan::XalanFileLoc - ); - - virtual void problem( - xalan::ProblemListenerBase::eSource, - xalan::ProblemListenerBase::eClassification, - const xalan::XalanDOMString&, - const xalan::XalanNode* - ); - - virtual void setPrintWriter(xalan::PrintWriter*); - - error_cache_ptr getCachedErrors(); - - private: - error_cache_ptr error_cache_; - - void constructErrorCache(); - -}; - -} - -#endif // INPUTXSLT_SRC_SUPPORT_ERROR_HANDLER_H_ -- cgit v1.2.3