DynamicContext

#include </home/jenkins/.jenkins/ubuntu-remote-queue/jenkins-BuildZorbaUbuntu-462/source/zorba/swig/DynamicContext.h>

Instances of the class DynamicContext contain the information that is available at the time the query is executed. The class contains the information that is defined in the XQuery specification (see http://www.w3.org/TR/xquery/#eval_context).A dynamic context always belongs to a particular query and, hence, can be retrieved by calling getDynamicContext on a compiled query (see XQuery::getDynamicContext()).

Private Attributes

zorba::DynamicContext *

theContext

Public Functions

DynamicContext()

DynamicContext(const DynamicContext &aCtx)

DynamicContext(zorba::DynamicContext *aCtx)

bool

getContextItem(Item &aItem)

Item

getCurrentDateTime()

Retrieve the dateTime Item used at the time the query is executed (see setCurrentDateTime()).

Item

getDefaultCollection()

Return the value of the default collection that is used when calling the fn:collection function without a parameter.

int

getImplicitTimezone()

Retrieve the implicit timezone used in comparisons or arithmetic operations of date, time, or dateTime values.

bool

getVariable(const std::string &aNamespace, const std::string &aLocalname, Item &aItem, Iterator &aIterator)

Returns the current value of an external variable.

bool

setContextItem(Item &aItem)

Defines the context item.

bool

setCurrentDateTime(Item &aDateTimeItem)

Defines the value of the current date time that can be accessed by the fn:current-dateTime() function at the time the query is executed.

bool

setDefaultCollection(Item &aCollectionUri)

Defines the value of the default collection that is used when calling the fn:collection function without a parameter.

bool

setImplicitTimezone(int aTimezone)

Defines the variable of the implicit timezone to be used when a date, time, or dateTime value that does not have a timezone is used in a comparison or arithmetic operation.

bool

setVariable(const std::string &aNamespace, const std::string &aLocalname, Iterator &aIter)

Defines the external variable identified by an expanded QName and assigns it the sequence that is returned by evaluating aIterator.

bool

setVariable(const std::string &aQName, Item &aItem)

Defines the external variable identified by aQName and assigns it the value of aItem.

bool

setVariable(const std::string &aQName, Iterator &aIterator)

Defines the external variable identified by aQName and assigns it the sequence that is returned by evaluating aIterator.

Private Attributes

theContext

zorba::DynamicContext * theContext

Public Functions

DynamicContext

 DynamicContext()

DynamicContext

 DynamicContext(const DynamicContext &aCtx)

DynamicContext

 DynamicContext(zorba::DynamicContext *aCtx)

getContextItem

bool getContextItem(Item &aItem)

getCurrentDateTime

Item getCurrentDateTime()

Retrieve the dateTime Item used at the time the query is executed (see setCurrentDateTime()).

Returns

Item the dateTime Item used at the time the query is executed.

getDefaultCollection

Item getDefaultCollection()

Return the value of the default collection that is used when calling the fn:collection function without a parameter.

Returns

Item the default collection that is set in this dynamic context.

Parameters

ZorbaException if an error occured.

getImplicitTimezone

int getImplicitTimezone()

Retrieve the implicit timezone used in comparisons or arithmetic operations of date, time, or dateTime values.

Returns

int the implicit timezone. Note that 0 is returned if an error occured and an DiagnosticHandler is used.

Parameters

ZorbaException if an error occured.

getVariable

bool getVariable(const std::string &aNamespace, const std::string &aLocalname, Item &aItem, Iterator &aIterator)

Returns the current value of an external variable.

Exactly one of the two return values (aItem or aIterator) will be non-null; that is, have isNull() == false.The named external variable may be located in the main query or in any modules imported directly or indirectly by the query.

Parameters

aNamespace the namespace URI of the variable's expanded QName
aLocalname the local name of the variable's expanded QName
aItem an Item representing the current (single-item) value of the external variable.
aIterator an Iterator representing the current (possibly multi-item) value of the external variable.

Returns

true if the variable has been retrieved successfully, false otherwise.

Parameters

ZorbaException if an error occured.

setContextItem

bool setContextItem(Item &aItem)

Defines the context item.

Parameters

aItem the Item that is used as value for the context item.

Returns

true if the context item was set, false otherwise.

Parameters

ZorbaException if an error occured (e.g. the given Item is not valid).

setCurrentDateTime

bool setCurrentDateTime(Item &aDateTimeItem)

Defines the value of the current date time that can be accessed by the fn:current-dateTime() function at the time the query is executed.

If the current date time has not been set explicitly the value of the date and time is used at the time the query is created or cloned, respectively.

Parameters

aDateTimeItem the dateTime Item.

Returns

true if the variable has been set successfully, false otherwise.

Parameters

ZorbaException if an error occured (e.g. the given Item is invalid or not a Item of type dateTime)

setDefaultCollection

bool setDefaultCollection(Item &aCollectionUri)

Defines the value of the default collection that is used when calling the fn:collection function without a parameter.

Parameters

aCollectionUri the URI of the collection used by the fn:collection function.

Returns

true if the default collection has been set successfully, false otherwise.

Parameters

ZorbaException if an error occured.

setImplicitTimezone

bool setImplicitTimezone(int aTimezone)

Defines the variable of the implicit timezone to be used when a date, time, or dateTime value that does not have a timezone is used in a comparison or arithmetic operation.

Parameters

aTimezone the implicit timezone as int that should be used.

Returns

true if the implicit timezone has been set successfully, false otherwise.

Parameters

ZorbaException if an error occured.

setVariable

bool setVariable(const std::string &aNamespace, const std::string &aLocalname, Iterator &aIter)

Defines the external variable identified by an expanded QName and assigns it the sequence that is returned by evaluating aIterator.

The named external variable may be located in the main query or in any modules imported directly or indirectly by the query.

Parameters

aNamespace the namespace URI of the variable's expanded QName
aLocalname the local name of the variable's expanded QName
aIter the Iterator producing the sequence that is assigned to the variable.

Returns

true if the variable has been set successfully, false otherwise.

Parameters

ZorbaException if an error occured (e.g. the given Iterator is not valid).

setVariable

bool setVariable(const std::string &aQName, Item &aItem)

Defines the external variable identified by aQName and assigns it the value of aItem.

aQName may be in one of two forms: A lexical QName (eg. "ns:foo"), or a James Clark-style universal name (eg. "{nsuri}:foo"). If it is a universal name, then this method will find the named external variable in the main query or in any modules imported directly or indirectly by the query. If it is a lexical QName, then it is only possible to resolve the prefix in the the context of the main query, hence only external variables in the main query or those in directly-imported modules may be bound.

Parameters

aQName the QName that identifies the external variable.
aItem the Item that is used as value for the variable.

Returns

true if the variable has been set, false otherwise.

Parameters

ZorbaException if an error occured (e.g. the given Item is not valid).

setVariable

bool setVariable(const std::string &aQName, Iterator &aIterator)

Defines the external variable identified by aQName and assigns it the sequence that is returned by evaluating aIterator.

aQName may be in one of two forms: A lexical QName (eg. "ns:foo"), or a James Clark-style universal name (eg. "{nsuri}:foo"). If it is a universal name, then this method will find the named external variable in the main query or in any modules imported directly or indirectly by the query. If it is a lexical QName, then it is only possible to resolve the prefix in the the context of the main query, hence only external variables in the main query or those in directly-imported modules may be bound.

Parameters

aQName the QName that identifies the external variable.
aIterator the Iterator producing the sequence that is assigned to the variable.

Returns

true if the variable has been set successfully, false otherwise.

Parameters

ZorbaException if an error occured (e.g. the given Iterator is not valid).