From d5367d268e8f2be9dd519b3b90f7baa64d6d50b7 Mon Sep 17 00:00:00 2001 From: Adrian Kummerländer Date: Sat, 31 May 2014 10:44:23 +0200 Subject: Using xalan::ProblemListenerBase formatting functionality in ErrorCapacitor * xalan::ProblemListenerBase provides a static member method called "defaultFormat" ** this method provides formatting of problem messages into xalan::XalanDOMString instances when combined with xalan::DOMStringPrintWriter * there is no need for implementing custom message formatting ** the only reason why ErrorCapacitor exists is so we are able to capture and print messages at our own volition --- src/support/error_capacitor.cc | 65 ++++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 24 deletions(-) (limited to 'src/support/error_capacitor.cc') diff --git a/src/support/error_capacitor.cc b/src/support/error_capacitor.cc index e83ba9a..1a536ed 100644 --- a/src/support/error_capacitor.cc +++ b/src/support/error_capacitor.cc @@ -2,6 +2,8 @@ #include +#include + #include #include "support/xalan_string.h" @@ -58,42 +60,57 @@ void ErrorCapacitor::fatalError(const xercesc::SAXParseException& exception) { void ErrorCapacitor::resetErrors() { } void ErrorCapacitor::problem( - xalan::ProblemListenerBase::eSource, - xalan::ProblemListenerBase::eClassification, - const xalan::XalanDOMString& message, - const xalan::Locator*, - const xalan::XalanNode* + xalan::ProblemListenerBase::eSource source, + xalan::ProblemListenerBase::eClassification classification, + const xalan::XalanDOMString& message, + const xalan::Locator* locator, + const xalan::XalanNode* node ) { - this->error_cache_->emplace_back( - "XSLT problem: " + toString(message) + xalan::XalanDOMString problemSummary; + xalan::DOMStringPrintWriter writer(problemSummary); + + defaultFormat( + writer, + source, + classification, + message, + locator, + node ); + + this->error_cache_->emplace_back(toString(problemSummary)); } void ErrorCapacitor::problem( - xalan::ProblemListenerBase::eSource, - xalan::ProblemListenerBase::eClassification, - const xalan::XalanNode*, - const xalan::ElemTemplateElement*, - const xalan::XalanDOMString& message, - const xalan::XalanDOMChar*, - xalan::XalanFileLoc, - xalan::XalanFileLoc + xalan::ProblemListenerBase::eSource source, + xalan::ProblemListenerBase::eClassification classification, + const xalan::XalanDOMString& message, + const xalan::XalanNode* node ) { - this->error_cache_->emplace_back( - "XSLT problem: " + toString(message) + xalan::XalanDOMString problemSummary; + xalan::DOMStringPrintWriter writer(problemSummary); + + defaultFormat( + writer, + source, + classification, + message, + node ); + + this->error_cache_->emplace_back(toString(problemSummary)); } void ErrorCapacitor::problem( xalan::ProblemListenerBase::eSource, xalan::ProblemListenerBase::eClassification, - const xalan::XalanDOMString& message, - const xalan::XalanNode* -) { - this->error_cache_->emplace_back( - "XSLT problem: " + toString(message) - ); -} + const xalan::XalanNode*, + const xalan::ElemTemplateElement*, + const xalan::XalanDOMString&, + const xalan::XalanDOMChar*, + xalan::XalanFileLoc, + xalan::XalanFileLoc +) { } void ErrorCapacitor::setPrintWriter(xalan::PrintWriter*) { } -- cgit v1.2.3