Public Member Functions | Friends | List of all members
zorba::Item Class Reference

The Zorba Item interface. More...

#include <zorba/item.h>

Public Member Functions

void close ()
 Free all resources aquired by this Item. More...
 
Iterator_t getAtomizationValue () const
 Get the atomization value of the Item. More...
 
Iterator_t getAttributes () const
 Get an iterator for the attributes of this (node) Item. More...
 
const char * getBase64BinaryValue (size_t &s) const
 Returns the value and size of the given base64Binary item. More...
 
bool getBooleanValue () const
 Get the bool value of the boolean Item. More...
 
Iterator_t getChildren () const
 Get an iterator for the children of this (node) Item. More...
 
Item getCollectionName () const
 Returns the name of the collection this node is stored in. More...
 
double getDoubleValue () const
 Get the int value of the Item. More...
 
Item getEBV () const
 Get the effective boolean value of the Item. More...
 
int32_t getIntValue () const
 Get the int value of the Item. More...
 
String getLocalName () const
 Get the value of a QName's local name. More...
 
int64_t getLongValue () const
 Get the long value of the Item. More...
 
String getNamespace () const
 Get the (optional) value of a QName's namespace. More...
 
void getNamespaceBindings (NsBindings &aBindings, store::StoreConsts::NsScoping aNsScoping=store::StoreConsts::ALL_NAMESPACES) const
 Get an iterator for the namespace bindings of this (element) Item. More...
 
int getNodeKind () const
 Get the type of this (node) Item. More...
 
bool getNodeName (Item &aNodeName) const
 Get the name of this (node) Item. More...
 
Item getParent () const
 Get parent of this (node) Item. More...
 
String getPrefix () const
 Get the (optional) value of a QName's prefix. More...
 
std::istream & getStream ()
 Gets an istream for the item's content. More...
 
String getStringValue () const
 Get the string value of the Item. More...
 
Item getType () const
 Get the type of the Item. More...
 
store::SchemaTypeCode getTypeCode () const
 
uint32_t getUnsignedIntValue () const
 Get the unsigned int value of the Item. More...
 
bool isAtomic () const
 Check if the Item is an atomic Item. More...
 
bool isEncoded () const
 Returns true if the contents of a binary item is already encoded. More...
 
bool isNaN () const
 Check if the value of the Item is not a number (NaN). More...
 
bool isNode () const
 Check if the Item is a node Item. More...
 
bool isNull () const
 Check if the Item is null. More...
 
bool isPosOrNegInf () const
 Check if the value of the Item is positive or negative infinity. More...
 
bool isSeekable () const
 Checks whether the item's streamable content is arbitrarily (forward anb backward) seekable. More...
 
bool isStreamable () const
 Checks whether the item's content is streamable. More...
 
 Item ()
 Default constructor. More...
 
 Item (const Item &other)
 Copy constructor. More...
 
 Item (const store::Item *item)
 Constructor that is used to construct Items in the Zorba engine itself. More...
 
size_t mem_size () const
 Gets the total amount of memory this Item and all its child Items are using. More...
 
const Itemoperator= (const Item &rhs)
 Assingment operator. More...
 
const Itemoperator= (const store::Item *rhs)
 Assingment operator that is used in the Zorba engine itself. More...
 
 ~Item ()
 Destructor. More...
 

Friends

class Unmarshaller
 
void zorba::serialization::operator& (zorba::serialization::Archiver &ar, Item &obj)
 

Detailed Description

The Zorba Item interface.

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.

Examples:
context.cpp, datamanager.cpp, errors.cpp, external_functions.cpp, serialization.cpp, and simple.cpp.

Definition at line 60 of file item.h.

Constructor & Destructor Documentation

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.

Member Function Documentation

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.

Returns
Item the atomization value of the Item.
Exceptions
ZorbaExceptionif 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.

Returns
Iterator over the attributes of this node.
Exceptions
ZorbaExceptionif an error occured, e.g. the Item is not of type node.
Examples:
simple.cpp.
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.

Returns
true if the boolean value is true, false otherwise.
Exceptions
ZorbaExceptionif 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.

Returns
Iterator over the children of this node.
Exceptions
ZorbaExceptionif an error occured, e.g. the Item is not of type node.
Examples:
simple.cpp.
Item zorba::Item::getCollectionName ( ) const

Returns the name of the collection this node is stored in.

Returns
The name of the collection or 0 if the given item is not a node or not stored in a collection.
double zorba::Item::getDoubleValue ( ) const

Get the int value of the Item.

Returns
Item the int value of the Item.
Exceptions
ZorbaExceptionif 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.

Returns
Item the effective boolean value of the Item
Exceptions
ZorbaExceptionif an error occured.
int32_t zorba::Item::getIntValue ( ) const

Get the int value of the Item.

Returns
Item the int value of the Item.
Exceptions
ZorbaExceptionif 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.

Returns
String the local name of the QName.
Exceptions
ZorbaExceptionif an error occured, e.g. the Item is not a QName.
int64_t zorba::Item::getLongValue ( ) const

Get the long value of the Item.

Returns
Item the long value of the Item.
Exceptions
ZorbaExceptionif 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.

Returns
String the namespace URI of the QName.
Exceptions
ZorbaExceptionif 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.

Parameters
aBindingsAn 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).
aNsScopingAn 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).
Exceptions
ZorbaExceptionif an error occured, e.g. the Item is not of type element.
Examples:
simple.cpp.
int zorba::Item::getNodeKind ( ) const

Get the type of this (node) Item.

Note that this function is only available for node Items.

Returns
int the kind of this node (the avaialble kinds can be found in the store::StoreConsts class)
Exceptions
ZorbaExceptionif an error occured (e.g. the Item is not of type node).
bool zorba::Item::getNodeName ( Item aNodeName) const

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.

Returns
bool if the name of the node was retrieved successfully
aNodeName the name of the node
Exceptions
ZorbaExceptionif an error occured (e.g. the Item is not of type node).
Examples:
simple.cpp.
Item zorba::Item::getParent ( ) const

Get parent of this (node) Item.

Note that this function is only available for node Items.

Returns
element or document parent node of this node.
Exceptions
ZorbaExceptionif 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.

Returns
String the prefix of the QName.
Exceptions
ZorbaExceptionif an error occured, e.g. the Item is not a QName.
std::istream& zorba::Item::getStream ( )

Gets an istream for the item's content.

Returns
the stream.
Exceptions
ZorbaExceptionif 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.

Returns
Item the string value of the Item.
Exceptions
ZorbaExceptionif an error occured.
Examples:
datamanager.cpp, external_functions.cpp, and simple.cpp.
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.

Returns
Item the type of the Item as a QName Item
Exceptions
ZorbaExceptionif an error occured.
store::SchemaTypeCode zorba::Item::getTypeCode ( ) const
Returns
the type of this item based on the enum values in store_const.h
uint32_t zorba::Item::getUnsignedIntValue ( ) const

Get the unsigned int value of the Item.

Returns
Item the unsigned int value of the Item.
Exceptions
ZorbaExceptionif an error occured.
bool zorba::Item::isAtomic ( ) const

Check if the Item is an atomic Item.

Note that this function is available for all types of Items.

Returns
true if the Item is an atomic Item, false otherwise.
bool zorba::Item::isEncoded ( ) const

Returns true if the contents of a binary item is already encoded.

Returns
true if the content is already encoded, false otherwise
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).

Returns
true if the Item is NaN, false otherwise.
Exceptions
ZorbaExceptionif an error occured, e.g. the Item is not a numeric type.
bool zorba::Item::isNode ( ) const

Check if the Item is a node Item.

Note that this function is available for all types of Items.

Returns
true if the Item is of type node, false otherwise.
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.

Returns
true if the Item is null, false otherwise.
Examples:
external_functions.cpp.
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).

Returns
true if the Item is +/-INF, false otherwise.
Exceptions
ZorbaExceptionif an error occured, e.g. the Item is not a numeric type.
bool zorba::Item::isSeekable ( ) const

Checks whether the item's streamable content is arbitrarily (forward anb backward) seekable.

Returns
true only if it is.
bool zorba::Item::isStreamable ( ) const

Checks whether the item's content is streamable.

Returns
true only if it is.
size_t zorba::Item::mem_size ( ) const

Gets the total amount of memory this Item and all its child Items are using.

Returns
said total amount of memory.
const Item& zorba::Item::operator= ( const Item rhs)

Assingment operator.

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.

Friends And Related Function Documentation

friend class Unmarshaller
friend

Definition at line 493 of file item.h.

void zorba::serialization::operator& ( zorba::serialization::Archiver &  ar,
Item obj 
)
friend

The documentation for this class was generated from the following file: