aboutsummaryrefslogtreecommitdiff
path: root/src/support/dom/document_cache_item.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/support/dom/document_cache_item.cc')
-rw-r--r--src/support/dom/document_cache_item.cc43
1 files changed, 8 insertions, 35 deletions
diff --git a/src/support/dom/document_cache_item.cc b/src/support/dom/document_cache_item.cc
index 8cc1c24..9798bfa 100644
--- a/src/support/dom/document_cache_item.cc
+++ b/src/support/dom/document_cache_item.cc
@@ -1,50 +1,23 @@
#include "support/dom/document_cache_item.h"
-#include <xercesc/dom/DOMImplementation.hpp>
-#include <xercesc/util/XMLString.hpp>
-
-#include "support/xerces_string_guard.h"
-
namespace InputXSLT {
-DomDocumentCache::item::item(const std::string& rootNode):
+DomDocumentCache::item::item(xercesc::DOMDocument* document):
parser_(),
dom_support_(parser_),
- document_(
- xercesc::DOMImplementation::getImplementation()->createDocument(
- nullptr,
- *XercesStringGuard(rootNode),
- nullptr
- )
- ),
- parsed_source_() { }
+ document_(document),
+ parsed_source_(
+ document_,
+ parser_,
+ dom_support_
+ ) { }
DomDocumentCache::item::~item() {
this->document_->release();
}
-bool DomDocumentCache::item::isFinalized() const {
- return static_cast<bool>(this->parsed_source_);
-}
-
-xercesc::DOMDocument* DomDocumentCache::item::getXercesDocument() const {
- return this->document_;
-}
-
xalan::XalanDocument* DomDocumentCache::item::getXalanDocument() {
- if ( this->parsed_source_ ) {
- return this->parsed_source_->getDocument();
- } else {
- this->parsed_source_.reset(
- new xalan::XercesDOMWrapperParsedSource(
- document_,
- parser_,
- dom_support_
- )
- );
-
- return this->parsed_source_->getDocument();
- }
+ return this->parsed_source_.getDocument();
}
}