aboutsummaryrefslogtreecommitdiff
path: root/src/transformer_guard.cc
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-04-20 13:09:32 +0200
committerAdrian Kummerländer2014-04-20 13:09:32 +0200
commit29a9fb20b4c8414f2590886e43ae86794a53db89 (patch)
tree4d426d45293a019caee8ee879186111c90b426d3 /src/transformer_guard.cc
parent3383e24e396431eed7d4ab9f69ff8ffaf12d4925 (diff)
downloadInputXSLT-29a9fb20b4c8414f2590886e43ae86794a53db89.tar
InputXSLT-29a9fb20b4c8414f2590886e43ae86794a53db89.tar.gz
InputXSLT-29a9fb20b4c8414f2590886e43ae86794a53db89.tar.bz2
InputXSLT-29a9fb20b4c8414f2590886e43ae86794a53db89.tar.lz
InputXSLT-29a9fb20b4c8414f2590886e43ae86794a53db89.tar.xz
InputXSLT-29a9fb20b4c8414f2590886e43ae86794a53db89.tar.zst
InputXSLT-29a9fb20b4c8414f2590886e43ae86794a53db89.zip
Implemented support for modifying external function base path
* one expects a read-file function to work relative to the directory the transformation is located and not to the executable's location ** from the perspective of the user the transformation is the application, not the actual executable * removed PlattformGuard struct from TransformerGuard (now TransformerFacade) * TransformerFacade is instatiated with the appropriate relative working path ** i.e. it will have to be instantiated for every directory containing one or more transformations
Diffstat (limited to 'src/transformer_guard.cc')
-rw-r--r--src/transformer_guard.cc67
1 files changed, 0 insertions, 67 deletions
diff --git a/src/transformer_guard.cc b/src/transformer_guard.cc
deleted file mode 100644
index 73bcea2..0000000
--- a/src/transformer_guard.cc
+++ /dev/null
@@ -1,67 +0,0 @@
-#include "transformer_guard.h"
-
-#include <xalanc/Include/PlatformDefinitions.hpp>
-#include <xercesc/util/PlatformUtils.hpp>
-
-#include <xalanc/XSLT/XSLTInputSource.hpp>
-#include <xalanc/XalanTransformer/XalanTransformer.hpp>
-#include <xalanc/XalanTransformer/XercesDOMWrapperParsedSource.hpp>
-#include <xalanc/XercesParserLiaison/XercesDOMSupport.hpp>
-
-#include <xercesc/dom/DOMDocument.hpp>
-#include <xercesc/dom/DOMImplementation.hpp>
-
-#include "function/read_file.h"
-#include "function/read_xml_file.h"
-
-namespace InputXSLT {
-
-TransformerGuard::TransformerGuard():
- plattform_(),
- parser_(),
- transformer_() {
- const xalan::XalanDOMString customNamespace(
- "http://ExternalFunction.xalan-c++.xml.apache.org"
- );
-
- this->transformer_.installExternalFunction(
- customNamespace,
- xalan::XalanDOMString("read-file"),
- InputXSLT::FunctionReadFile()
- );
-
- this->transformer_.installExternalFunction(
- customNamespace,
- xalan::XalanDOMString("read-xml-file"),
- InputXSLT::FunctionReadXmlFile()
- );
-
-}
-
-int TransformerGuard::execute(
- const std::string& transformation,
- const std::string& target
-) {
- xercesc::DOMDocument* inputDom(
- xercesc::DOMImplementation::getImplementation()->createDocument()
- );
- xalan::XercesDOMSupport domSupport(this->parser_);
-
- xalan::XercesDOMWrapperParsedSource parsedInput(
- inputDom,
- this->parser_,
- domSupport,
- xalan::XalanDOMString("")
- );
-
- xalan::XSLTInputSource transform(transformation.data());
- xalan::XSLTResultTarget output(target.data());
-
- return this->transformer_.transform(
- parsedInput,
- transform,
- output
- );
-}
-
-}