From 0d670478b51c55e44f57995fe3ca8a4585723a6c Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Tue, 17 Jun 2014 21:28:04 +0200 Subject: Added context awareness to XObjectValue casting logic * added support for defining boost::filesystem::path as a external function parameter ** boost::filesystem::path parameters are resolved against the appropriate FilesystemContext and IncludeEntityResolver instances * xalan::XSLTInputSource parameter source paths are also resolved * removed need for passing a reference FilesystemContext to "constructDocument" methods ** they now only accept the parameters of the external function implemented by them ** all path resolution logic is wrapped by the newly created XObjectValue class * converted XObjectValue namespace into class ** the "get" template method is now a template member method ** this was needed to enable value casting logic to access the appropriate FilesystemContext and IncludeEntityResolver instances * this commit marks the next step towards the goals defined in 741a70f --- src/function/base.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/function/base.h') diff --git a/src/function/base.h b/src/function/base.h index 5212d65..5aada0e 100644 --- a/src/function/base.h +++ b/src/function/base.h @@ -96,16 +96,18 @@ class FunctionBase : public xalan::Function { const xalan::Locator* locator, Sequence ) const { + XObjectValue valueGetter( + this->include_resolver_->resolve( + locator->getSystemId() + ), + this->include_resolver_ + ); + return this->document_cache_->create( static_cast( const_cast(this) )->constructDocument( - FilesystemContext( - this->include_resolver_->resolve( - locator->getSystemId() - ) - ), - XObjectValue::get >::type>(parameters[Index])... -- cgit v1.2.3