aboutsummaryrefslogtreecommitdiff
path: root/src/transformation_facade.cc
diff options
context:
space:
mode:
authorAdrian Kummerlaender2014-07-04 22:41:17 +0200
committerAdrian Kummerlaender2014-07-04 22:41:17 +0200
commitf05e742b88e3ebf7401c252332022f1a2f7eb8b0 (patch)
tree038e011e808eb86e4c8ebfee11132e5c952edaf0 /src/transformation_facade.cc
parent784ac42a0f05608e3d9c5e15246dbf76ce9e3d51 (diff)
downloadInputXSLT-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.cc38
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();