The Zorba Item interface. More...
#include <zorba/item.h>
Public Member Functions | |
void | close () |
Free all resources aquired by this Item. | |
Iterator_t | getAtomizationValue () const |
Get the atomization value of the Item. | |
Iterator_t | getAttributes () const |
Get an iterator for the attributes of this (node) Item. | |
const char * | getBase64BinaryValue (size_t &s) const |
Returns the value and size of the given base64Binary item. | |
bool | getBooleanValue () const |
Get the bool value of the boolean Item. | |
Iterator_t | getChildren () const |
Get an iterator for the children of this (node) Item. | |
Item | getCollectionName () const |
Returns the name of the collection this node is stored in. | |
double | getDoubleValue () const |
Get the int value of the Item. | |
Item | getEBV () const |
Get the effective boolean value of the Item. | |
int32_t | getIntValue () const |
Get the int value of the Item. | |
String | getLocalName () const |
Get the value of a QName's local name. | |
int64_t | getLongValue () const |
Get the long value of the Item. | |
String | getNamespace () const |
Get the (optional) value of a QName's namespace. | |
void | getNamespaceBindings (NsBindings &aBindings, store::StoreConsts::NsScoping aNsScoping=store::StoreConsts::ALL_NAMESPACES) const |
Get an iterator for the namespace bindings of this (element) Item. | |
int | getNodeKind () const |
Get the type of this (node) Item. | |
bool | getNodeName (Item &aNodeName) const |
Get the name of this (node) Item. | |
Item | getParent () const |
Get parent of this (node) Item. | |
String | getPrefix () const |
Get the (optional) value of a QName's prefix. | |
std::istream & | getStream () |
Gets an istream for the item's content. | |
String | getStringValue () const |
Get the string value of the Item. | |
Item | getType () const |
Get the type of the Item. | |
store::SchemaTypeCode | getTypeCode () const |
uint32_t | getUnsignedIntValue () const |
Get the unsigned int value of the Item. | |
bool | isAtomic () const |
Check if the Item is an atomic Item. | |
bool | isEncoded () const |
Returns true if the contents of a binary item is already encoded. | |
bool | isNaN () const |
Check if the value of the Item is not a number (NaN). | |
bool | isNode () const |
Check if the Item is a node Item. | |
bool | isNull () const |
Check if the Item is null. | |
bool | isPosOrNegInf () const |
Check if the value of the Item is positive or negative infinity. | |
bool | isStreamable () const |
Checks whether the item's content is streamable. | |
Item () | |
Default constructor. | |
Item (const Item &other) | |
Copy constructor. | |
Item (const store::Item *item) | |
Constructor that is used to construct Items in the Zorba engine itself. | |
const Item & | operator= (const Item &rhs) |
Assingment operator. | |
const Item & | operator= (const store::Item *rhs) |
Assingment operator that is used in the Zorba engine itself. | |
~Item () | |
Destructor. |
Friends | |
class | Unmarshaller |
void | zorba::serialization::operator& (zorba::serialization::Archiver &ar, Item &obj) |
This class is the Zorba representation of an Item as defined in the XQuery 1.0 and XPath 2.0 Data Model (XDM); see http://www.w3.org/TR/xpath-datamodel/.
Instances of the XDM are a sequence, i.e. an ordered collection of zero or more items. In the Zorba API, a sequence is represented by the ItemSequence class.
The Item class is the union of all XQuery node and atomic types. The class provides functions to access the information of an Item. Note that not all functions are defined on every Item kind. If a function is called on an Item that does not provide the called function, an ZXQP0024_FUNCTION_NOT_IMPLEMENTED_FOR_ITEMTYPE error is raised.
Instances of the Item class are always passed by copy. To check whether a given Item is valid isNull() can be called which returns true if the given Item is not valid and false otherwise. A new atomic Item can be created using the ItemFactory. A new node Item should be created by the result of a query.
zorba::Item::Item | ( | ) |
Default constructor.
zorba::Item::Item | ( | const Item & | other | ) |
Copy constructor.
zorba::Item::Item | ( | const store::Item * | item | ) |
Constructor that is used to construct Items in the Zorba engine itself.
This constructor is for internal use only.
zorba::Item::~Item | ( | ) |
Destructor.
void zorba::Item::close | ( | ) |
Free all resources aquired by this Item.
After calling close() on an Item the Item is invalidated, i.e. a subsequent call to isNull() will return true.
Note that calling this function is usually not necessary because close() is implicitly called by the destructor. Calling close() is only necessary if the resources aquired by an Item should be released before the Item goes out of scope, i.e. the destructor is called.
Also note that this function is available for all types of Items.
Iterator_t zorba::Item::getAtomizationValue | ( | ) | const |
Get the atomization value of the Item.
The atomization value is the value that is returned by atomization (see http://www.w3.org/TR/xquery/#id-atomization). Note that this function is available for all types of Items.
ZorbaException | if an error occured. |
Iterator_t zorba::Item::getAttributes | ( | ) | const |
Get an iterator for the attributes of this (node) Item.
Note that this function is only available for node Items. The file simple.cpp contains some basic examples that demonstrate the use of this function.
ZorbaException | if an error occured, e.g. the Item is not of type node. |
const char* zorba::Item::getBase64BinaryValue | ( | size_t & | s | ) | const |
Returns the value and size of the given base64Binary item.
The value is a string which is base64 encoded if isEncoded() returns true. Otherwise, it is the original unencoded binary data.
If the given item is streamable (i.e. isStreamable() returns true), the stream returned by getStream() should to be used to retrieve the value. Otherwise, the contents of the stream will be materialized in main memory.
bool zorba::Item::getBooleanValue | ( | ) | const |
Get the bool value of the boolean Item.
Note that this function is only available for Items of type boolean.
ZorbaException | if an error occured, e.g. the Item is not of type boolean. |
Iterator_t zorba::Item::getChildren | ( | ) | const |
Get an iterator for the children of this (node) Item.
Note that this function is only available for node Items. The file simple.cpp contains some basic examples that demonstrate the use of this function.
ZorbaException | if an error occured, e.g. the Item is not of type node. |
Item zorba::Item::getCollectionName | ( | ) | const |
Returns the name of the collection this node is stored in.
double zorba::Item::getDoubleValue | ( | ) | const |
Get the int value of the Item.
ZorbaException | if an error occured. |
Item zorba::Item::getEBV | ( | ) | const |
Get the effective boolean value of the Item.
The effective boolean value is the result of applying the fn:boolean function on the Item (see http://www.w3.org/TR/xpath-functions/#func-boolean). Note that this function is available for all types of Items.
ZorbaException | if an error occured. |
int32_t zorba::Item::getIntValue | ( | ) | const |
Get the int value of the Item.
ZorbaException | if an error occured. |
String zorba::Item::getLocalName | ( | ) | const |
Get the value of a QName's local name.
Note that this function is only available for Items of type QName.
ZorbaException | if an error occured, e.g. the Item is not a QName. |
int64_t zorba::Item::getLongValue | ( | ) | const |
Get the long value of the Item.
ZorbaException | if an error occured. |
String zorba::Item::getNamespace | ( | ) | const |
Get the (optional) value of a QName's namespace.
Note that this function is only available for Items of type QName.
ZorbaException | if an error occured, e.g. the Item is not a QName. |
void zorba::Item::getNamespaceBindings | ( | NsBindings & | aBindings, |
store::StoreConsts::NsScoping | aNsScoping = store::StoreConsts::ALL_NAMESPACES |
||
) | const |
Get an iterator for the namespace bindings of this (element) Item.
Note that this function is only available for element Items. The file simple.cpp contains some basic examples that demonstrate the use of this function.
aBindings | An STL list to receive the namespace bindings of this node (each represented as a std::pair<zorba::String,zorba::String> where the first string is the namespace prefix and the second is the namespace URI). |
aNsScoping | An instance of NsScoping to declare which bindings to return: those local to the element; those local to all parent elements; or all bindings (the default). |
ZorbaException | if an error occured, e.g. the Item is not of type element. |
int zorba::Item::getNodeKind | ( | ) | const |
Get the type of this (node) Item.
Note that this function is only available for node Items.
ZorbaException | if an error occured (e.g. the Item is not of type node). |
Get the name of this (node) Item.
Note that this function is only available for node Items. The file simple.cpp contains some basic examples that demonstrate the use of this function.
ZorbaException | if an error occured (e.g. the Item is not of type node). |
Item zorba::Item::getParent | ( | ) | const |
Get parent of this (node) Item.
Note that this function is only available for node Items.
ZorbaException | if an error occured, e.g. the Item is not of type node. |
String zorba::Item::getPrefix | ( | ) | const |
Get the (optional) value of a QName's prefix.
Note that this function is only available for Items of type QName.
ZorbaException | if an error occured, e.g. the Item is not a QName. |
std::istream& zorba::Item::getStream | ( | ) |
Gets an istream for the item's content.
ZorbaException | if the item is not streamable. |
String zorba::Item::getStringValue | ( | ) | const |
Get the string value of the Item.
The string value is the string that is extracted by calling the fn:string function on the Item (see http://www.w3.org/TR/xpath-functions/#func-string). Note that this function is available for all types of Items.
ZorbaException | if an error occured. |
Item zorba::Item::getType | ( | ) | const |
Get the type of the Item.
See http://www.w3.org/TR/xpath-datamodel/#types. Note that this function is available for all types of Items.
ZorbaException | if an error occured. |
store::SchemaTypeCode zorba::Item::getTypeCode | ( | ) | const |
uint32_t zorba::Item::getUnsignedIntValue | ( | ) | const |
Get the unsigned int value of the Item.
ZorbaException | if an error occured. |
bool zorba::Item::isAtomic | ( | ) | const |
bool zorba::Item::isEncoded | ( | ) | const |
Returns true if the contents of a binary item is already encoded.
bool zorba::Item::isNaN | ( | ) | const |
Check if the value of the Item is not a number (NaN).
Note that this function is only available for numeric Items (e.g. Double or Float).
ZorbaException | if an error occured, e.g. the Item is not a numeric type. |
bool zorba::Item::isNode | ( | ) | const |
bool zorba::Item::isNull | ( | ) | const |
Check if the Item is null.
If this function returns true, the Item is not valid. Note that this function is available for all types of Items.
bool zorba::Item::isPosOrNegInf | ( | ) | const |
Check if the value of the Item is positive or negative infinity.
Note that this function is only available for numeric Items (e.g. Double or Float).
ZorbaException | if an error occured, e.g. the Item is not a numeric type. |
bool zorba::Item::isStreamable | ( | ) | const |
Checks whether the item's content is streamable.
const Item& zorba::Item::operator= | ( | const store::Item * | rhs | ) |
Assingment operator that is used in the Zorba engine itself.
This operator is for internal use only.
|
friend |