zorba::Collection

#include <zorba/collection.h>

Inherited from: zorba::SmartObject

A Collection is a persistent sequence of node items. Instances of this class can be used to modify or retrieve the contents of a collection.The variable aNodes passed to any of the insert functions is evaluated as though it were an enclosed expression in an element constructor. The result of this step is a sequence of nodes to be inserted into the collection.Note: This class is reference counted. When writing multi-threaded clients, it is the responibility of the client code to synchronize assignments to the SmartPtr holding this object.

Public Functions

void

addReference() const

ItemSequence_t

contents()=0

This function returns the sequence of nodes of the collection.

void

deleteNodeFirst()=0

This function deletes the first node from a collection.

void

deleteNodeLast()=0

This function deletes the last node from a collection.

void

deleteNodes(const ItemSequence_t &aNodes)=0

This function deletes zero of more nodes from a collection.

void

deleteNodesFirst(unsigned long aNumNodes)=0

This function deletes the n first nodes from a collection.

void

deleteNodesLast(unsigned long aNumNodes)=0

This function deletes the n last nodes from a collection.

void

free()

void

getAnnotations(std::vector< Annotation_t > &aAnnotations) const =0

Retrieves all annotations for the given collection.

const Item

getName() const =0

Get the name of the collection.

long

getRefCount() const

SequenceType

getType() const =0

Retrieves the sequence type for this (static declared) collection.

long long

indexOf(const Item &aNode)=0

This function returns the index of the given node in the collection.

void

insertNodesAfter(const Item &aTarget, const ItemSequence_t &aNodes)=0

This function inserts copies of the given nodes into a collection at the position directly following the given target node.

void

insertNodesBefore(const Item &aTarget, const ItemSequence_t &aNodes)=0

This function inserts copies of the given nodes into a collection at the position directly preceding the given target node.

void

insertNodesFirst(const ItemSequence_t &aNodes)=0

This function inserts copies of the given nodes at the beginning of the collection.

void

insertNodesLast(const ItemSequence_t &aNodes)=0

This function inserts copies of the given nodes at the end of the collection.

bool

isStatic() const =0

The function checks if this collection has been statically declared.

void

registerDiagnosticHandler(DiagnosticHandler *aDiagnosticHandler)=0

Register a DiagnosticHandler to which errors occuring during the management or manipulation of this collection are reported.

void

removeReference()

~Collection()

Destructor.

Protected Attributes

unsigned int

theRefCount

Public Functions

addReference

void addReference() const

contents

ItemSequence_t contents()=0

This function returns the sequence of nodes of the collection.

Returns

The sequence contained in the given collection.

deleteNodeFirst

void deleteNodeFirst()=0

This function deletes the first node from a collection.

Parameters

XDDY0011 if the collection doesn't contain any node.

deleteNodeLast

void deleteNodeLast()=0

This function deletes the last node from a collection.

Parameters

XDDY0011 if the collection doesn't contain any node.

deleteNodes

void deleteNodes(const ItemSequence_t &aNodes)=0

This function deletes zero of more nodes from a collection.

Parameters

aNodes the nodes in the collection that should be deleted.

Parameters

XDDY0011 if any nodes in the given sequence is not a member of a collection or not all nodes of the sequence belong to the same collection.

deleteNodesFirst

void deleteNodesFirst(unsigned long aNumNodes)=0

This function deletes the n first nodes from a collection.

Parameters

XDDY0011 if the collection doesn't contain any node.

deleteNodesLast

void deleteNodesLast(unsigned long aNumNodes)=0

This function deletes the n last nodes from a collection.

Parameters

XDDY0011 if the collection doesn't contain any node.

free

void free()

getAnnotations

void getAnnotations(std::vector< Annotation_t > &aAnnotations) const =0

Retrieves all annotations for the given collection.

If the collection is a statically declared collection, the annotations are the ones that haven been given in the declaration of the collection (or the defaults). If the collection is a dynamic collection, the annotations are the default ones for dynamic collections.

Returns

a list of all annotations for the given collection (if found)

getName

const Item getName() const =0

Get the name of the collection.

Returns

The name of the collection.

getRefCount

long getRefCount() const

getType

SequenceType getType() const =0

Retrieves the sequence type for this (static declared) collection.

Returns

the sequence type for the said collection, or 0 if this collection is not statically declared.

Returns

isStatic()

indexOf

long long indexOf(const Item &aNode)=0

This function returns the index of the given node in the collection.

Parameters

aNode The node to retrieve the index from.

Returns

Returns the position of the given node in the collection.

Parameters

XDDY0011 if node is not contained in any collection.

insertNodesAfter

void insertNodesAfter(const Item &aTarget, const ItemSequence_t &aNodes)=0

This function inserts copies of the given nodes into a collection at the position directly following the given target node.

Parameters

aTarget the node in the collection after which the sequence should be inserted.
aNodes The sequences of nodes whose copies should be added to the collection.

Parameters

XDDY0011 if any nodes in the sequence is not a member of a collection or not all nodes of the sequence belong to the same collection.

insertNodesBefore

void insertNodesBefore(const Item &aTarget, const ItemSequence_t &aNodes)=0

This function inserts copies of the given nodes into a collection at the position directly preceding the given target node.

Parameters

aTarget the node in the collection before which the sequence should be inserted.
aNodes The sequences of nodes whose copies should be added to the collection.

Parameters

XDDY0011 if any nodes in the sequence is not a member of a collection or not all nodes of the sequence belong to the same collection.

insertNodesFirst

void insertNodesFirst(const ItemSequence_t &aNodes)=0

This function inserts copies of the given nodes at the beginning of the collection.

Parameters

aNodes The sequences of nodes whose copies should be added to the collection.

insertNodesLast

void insertNodesLast(const ItemSequence_t &aNodes)=0

This function inserts copies of the given nodes at the end of the collection.

Parameters

aNodes The sequences of nodes whose copies should be added to the collection.

isStatic

bool isStatic() const =0

The function checks if this collection has been statically declared.

Returns

true if the collection is a static collection, false otherwise.

registerDiagnosticHandler

void registerDiagnosticHandler(DiagnosticHandler *aDiagnosticHandler)=0

Register a DiagnosticHandler to which errors occuring during the management or manipulation of this collection are reported.

If no DiagnosticHandler has been set using (1) this function, (2) the corresponding function of the XmlDataManager, or (3) the corresponding function of the CollectionManager then subclasses of the ZorbaException class are thrown to report errors.

Parameters

aDiagnosticHandler DiagnosticHandler to which errors are reported. The caller retains ownership over the DiagnosticHandler passed as parameter.

removeReference

void removeReference()

~Collection

 ~Collection()

Destructor.

Protected Attributes

theRefCount

unsigned int theRefCount