diff options
author | Adrian Kummerlaender | 2014-07-04 22:41:17 +0200 |
---|---|---|
committer | Adrian Kummerlaender | 2014-07-04 22:41:17 +0200 |
commit | f05e742b88e3ebf7401c252332022f1a2f7eb8b0 (patch) | |
tree | 038e011e808eb86e4c8ebfee11132e5c952edaf0 /src/transformation_facade.cc | |
parent | 784ac42a0f05608e3d9c5e15246dbf76ce9e3d51 (diff) | |
download | InputXSLT-f05e742b88e3ebf7401c252332022f1a2f7eb8b0.tar InputXSLT-f05e742b88e3ebf7401c252332022f1a2f7eb8b0.tar.gz InputXSLT-f05e742b88e3ebf7401c252332022f1a2f7eb8b0.tar.bz2 InputXSLT-f05e742b88e3ebf7401c252332022f1a2f7eb8b0.tar.lz InputXSLT-f05e742b88e3ebf7401c252332022f1a2f7eb8b0.tar.xz InputXSLT-f05e742b88e3ebf7401c252332022f1a2f7eb8b0.tar.zst InputXSLT-f05e742b88e3ebf7401c252332022f1a2f7eb8b0.zip |
Changed FunctionTransform result type to node-set
* using xalan::FormatterToXercesDOM internally
** this required changes to the TransformationFacade::generate member method overloads
* TransformationFacade::generate now accepts references to xalan::FormatterListener instances
** "generate(std::basic_ostream<char>&..." instantiates a xalan::FormatterToXML and passes it to the actual generate member method
* changed ResultNodeFacade's "getNode" method into a "getResultElement" method
** xalan::FormatterToXercesDOM requires a xercesc::DOMElement instance instead of the previously available xercesc::DOMNode instance
** changed FunctionReadDirectory accordingly
* adapted FunctionTransform test case accordingly
Diffstat (limited to 'src/transformation_facade.cc')
-rw-r--r-- | src/transformation_facade.cc | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/src/transformation_facade.cc b/src/transformation_facade.cc index 9d248b8..4017cd0 100644 --- a/src/transformation_facade.cc +++ b/src/transformation_facade.cc @@ -2,6 +2,9 @@ #include <xalanc/XSLT/XSLTInputSource.hpp> #include <xalanc/XalanTransformer/XalanCompiledStylesheet.hpp> +#include <xalanc/PlatformSupport/XalanOutputStreamPrintWriter.hpp> +#include <xalanc/PlatformSupport/XalanStdOutputStream.hpp> +#include <xalanc/XMLSupport/FormatterToXML.hpp> #include "support/xerces_string_guard.h" @@ -66,42 +69,45 @@ WarningCapacitor::warning_cache_ptr TransformationFacade::getCachedWarnings() { return this->warning_capacitor_.discharge(); } -void TransformationFacade::generate(std::basic_ostream<char>& targetStream) { +void TransformationFacade::generate( + std::basic_ostream<char>& targetStream, + const xalan::XObjectPtr& parameter +) { StylesheetParameterGuard guard(this->transformer_); + guard.set("parameters", parameter); - this->generate(targetStream, guard); + this->generate(targetStream); } -void TransformationFacade::generate( - std::basic_ostream<char>& targetStream, - const StylesheetParameterGuard::map& parameters -) { - StylesheetParameterGuard guard(this->transformer_, parameters); +void TransformationFacade::generate(std::basic_ostream<char>& targetStream) { + StylesheetParameterGuard guard(this->transformer_); + + xalan::XalanStdOutputStream outputStream(targetStream); + xalan::XalanOutputStreamPrintWriter outputWriter(outputStream); - this->generate(targetStream, guard); + xalan::FormatterToXML formatter(outputWriter); + formatter.setDoIndent(true); + + this->generate(formatter); } void TransformationFacade::generate( - std::basic_ostream<char>& targetStream, + xalan::FormatterListener& formatter, const xalan::XObjectPtr& parameter ) { StylesheetParameterGuard guard(this->transformer_); guard.set("parameters", parameter); - this->generate(targetStream, guard); + this->generate(formatter); } - -void TransformationFacade::generate( - std::basic_ostream<char>& targetStream, - StylesheetParameterGuard& -) { +void TransformationFacade::generate(xalan::FormatterListener& target) { ErrorCapacitor errorCapacitor(&this->error_multiplexer_); this->transformer_.transform( *(this->input_), this->transformation_, - targetStream + target ); errorCapacitor.discharge(); |