Zeta Components - high quality PHP components

Zeta Components Manual :: Docs For Class ezcTreeMemory

Tree::ezcTreeMemory

Class ezcTreeMemory

ezcTreeMemory is an implementation of a tree backend that operates on an in-memory tree structure. Meta-information is kept in objects of the ezcTreeMemoryNode class.

Example:

  1.  <?php
  2.      // Create a new tree
  3.      $tree = ezcTreeMemory::create( new ezcTreeMemoryDataStore() );
  4.      // or
  5.      $tree = new ezcTreeMemory( new ezcTreeMemoryDataStore() );
  6.  ?>

See ezcTree for examples on how to operate on the tree.

Source for this file: /Tree/src/backends/memory.php

ezcTree
   |
   --ezcTreeMemory
Version:   //autogentag//

Properties

string read/write $nodeClassName
Which class is used as tree node - this class *must* inherit the ezcTreeNode class.
ezcTreeXmlDataStore read $store
The data store that is used for retrieving/storing data.

Inherited Member Variables

From ezcTree
protected ezcTree::$inTransaction
protected ezcTree::$inTransactionCommit
protected ezcTree::$properties

Method Summary

public static ezcTreeMemory create( $store )
A factory method that creates a new empty tree using the data store $store.
protected ezcTreeMemory __construct( $store )
Constructs a new ezcTreeMemory object.
public void addChild( $parentId , $childNode )
Adds the node $childNode as child of the node with ID $parentId
public void delete( $nodeId )
Deletes the node with ID $nodeId from the tree, including all its children
public ezcTreeNodeList fetchChildren( $nodeId )
Returns all the children of the node with ID $nodeId.
public ezcTreeNode fetchNodeById( $nodeId )
Returns the node identified by the ID $nodeId.
public ezcTreeNode fetchParent( $nodeId )
Returns the parent node of the node with ID $nodeId.
public ezcTreeNodeList fetchPath( $nodeId )
Returns all the nodes in the path from the root node to the node with ID $nodeId, including those two nodes.
public ezcTreeNodeList fetchSubtree( $nodeId )
Alias for fetchSubtreeDepthFirst().
public ezcTreeNodeList fetchSubtreeBreadthFirst( $nodeId )
Returns the node with ID $nodeId and all its children, sorted according to the Breadth-first sorting algorithm.
public ezcTreeNodeList fetchSubtreeDepthFirst( $nodeId )
Returns the node with ID $nodeId and all its children, sorted accoring to the Depthth-first sorting algorithm.
public void fixateTransaction( )
Fixates the transaction.
protected integer generateNodeID( )
This method generates the next node ID.
public int getChildCount( $nodeId )
Returns the number of direct children of the node with ID $nodeId.
public int getChildCountRecursive( $nodeId )
Returns the number of children of the node with ID $nodeId, recursively
public int getPathLength( $nodeId )
Returns the distance from the root node to the node with ID $nodeId
public ezcTreeNode getRootNode( )
Returns the root node
public bool hasChildNodes( $nodeId )
Returns whether the node with ID $nodeId has children
public bool isChildOf( $childId , $parentId )
Returns whether the node with ID $childId is a direct child of the node with ID $parentId
public bool isDescendantOf( $childId , $parentId )
Returns whether the node with ID $childId is a direct or indirect child of the node with ID $parentId
public bool isSiblingOf( $child1Id , $child2Id )
Returns whether the nodes with IDs $child1Id and $child2Id are siblings (ie, the share the same parent)
public void move( $nodeId , $targetParentId )
Moves the node with ID $nodeId as child to the node with ID $targetParentId
public bool nodeExists( $nodeId )
Returns whether the node with ID $nodeId exists.
public void setRootNode( $node )
Sets a new node as root node, this wipes also out the whole tree

Inherited Methods

From ezcTree
public void ezcTree::accept()
Implements the accept method for visiting.
public abstract void ezcTree::addChild()
Adds the node $childNode as child of the node with ID $parentId.
protected void ezcTree::addTransactionItem()
Adds a new transaction item to the list.
public void ezcTree::beginTransaction()
Starts an transaction in which all tree modifications are queued until the transaction is committed with the commit() method.
protected void ezcTree::checkNodeId()
This method checks whether a node ID is valid to be used in a backend.
public void ezcTree::commit()
Commits the transaction by running the stored instructions to modify the tree structure.
public static void ezcTree::copy()
Copies the tree in $from to the empty tree in $to.
public ezcTreeNode ezcTree::createNode()
Creates a new tree node with node ID $nodeId and $data.
public abstract void ezcTree::delete()
Deletes the node with ID $nodeId from the tree, including all its children.
public abstract ezcTreeNodeList ezcTree::fetchChildren()
Returns all the children of the node with ID $nodeId.
public ezcTreeNode ezcTree::fetchNodeById()
Returns the node identified by the ID $nodeId.
public abstract ezcTreeNode ezcTree::fetchParent()
Returns the parent node of the node with ID $nodeId.
public abstract ezcTreeNodeList ezcTree::fetchPath()
Returns all the nodes in the path from the root node to the node with ID $nodeId, including those two nodes.
public abstract ezcTreeNodeList ezcTree::fetchSubtree()
Alias for fetchSubtreeDepthFirst().
public abstract ezcTreeNodeList ezcTree::fetchSubtreeBreadthFirst()
Returns the node with ID $nodeId and all its children, sorted according to the Breadth-first sorting algorithm.
public abstract ezcTreeNodeList ezcTree::fetchSubtreeDepthFirst()
Returns the node with ID $nodeId and all its children, sorted according to the Depth-first sorting algorithm.
protected abstract integer ezcTree::generateNodeID()
This method generates the next node ID.
public abstract int ezcTree::getChildCount()
Returns the number of direct children of the node with ID $nodeId.
public abstract int ezcTree::getChildCountRecursive()
Returns the number of children of the node with ID $nodeId, recursively.
public abstract int ezcTree::getPathLength()
Returns the distance from the root node to the node with ID $nodeId.
public abstract ezcTreeNode ezcTree::getRootNode()
Returns the root node.
public abstract bool ezcTree::hasChildNodes()
Returns whether the node with ID $nodeId has children.
public bool ezcTree::inTransaction()
Returns whether we are currently in a transaction or not
public bool ezcTree::inTransactionCommit()
Returns whether we are currently in a transaction commit state or not
public abstract bool ezcTree::isChildOf()
Returns whether the node with ID $childId is a direct child of the node with ID $parentId.
public abstract bool ezcTree::isDescendantOf()
Returns whether the node with ID $childId is a direct or indirect child of the node with ID $parentId.
public abstract bool ezcTree::isSiblingOf()
Returns whether the nodes with IDs $child1Id and $child2Id are siblings (ie, they share the same parent).
public abstract void ezcTree::move()
Moves the node with ID $nodeId as child to the node with ID $targetParentId.
public abstract bool ezcTree::nodeExists()
Returns whether the node with ID $nodeId exists.
public void ezcTree::rollback()
Rolls back the transaction by clearing all stored instructions.
public abstract void ezcTree::setRootNode()
Sets a new node as root node, this also wipes out the whole tree.

Methods

create

static ezcTreeMemory create( ezcTreeMemoryDataStore $store )

A factory method that creates a new empty tree using the data store $store.

Parameters:
Name Type Description
$store ezcTreeMemoryDataStore

__construct

ezcTreeMemory __construct( ezcTreeMemoryDataStore $store )

Constructs a new ezcTreeMemory object.

The store that is used for data storage should be passed as the $store argument.

Parameters:
Name Type Description
$store ezcTreeMemoryDataStore

addChild

void addChild( string $parentId , ezcTreeNode $childNode )

Adds the node $childNode as child of the node with ID $parentId

Parameters:
Name Type Description
$parentId string
$childNode ezcTreeNode
Redefinition of:
Method Description
ezcTree::addChild() Adds the node $childNode as child of the node with ID $parentId.

delete

void delete( string $nodeId )

Deletes the node with ID $nodeId from the tree, including all its children

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::delete() Deletes the node with ID $nodeId from the tree, including all its children.

fetchChildren

ezcTreeNodeList fetchChildren( string $nodeId )

Returns all the children of the node with ID $nodeId.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::fetchChildren() Returns all the children of the node with ID $nodeId.

fetchNodeById

ezcTreeNode fetchNodeById( string $nodeId )

Returns the node identified by the ID $nodeId.

Parameters:
Name Type Description
$nodeId string
Exceptions:
Type Description
ezcTreeInvalidIdException if there is no node with ID $nodeId
Redefinition of:
Method Description
ezcTree::fetchNodeById() Returns the node identified by the ID $nodeId.

fetchParent

ezcTreeNode fetchParent( string $nodeId )

Returns the parent node of the node with ID $nodeId.

This method returns null if there is no parent node.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::fetchParent() Returns the parent node of the node with ID $nodeId.

fetchPath

ezcTreeNodeList fetchPath( string $nodeId )

Returns all the nodes in the path from the root node to the node with ID $nodeId, including those two nodes.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::fetchPath() Returns all the nodes in the path from the root node to the node with ID $nodeId, including those two nodes.

fetchSubtree

ezcTreeNodeList fetchSubtree( string $nodeId )

Alias for fetchSubtreeDepthFirst().

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::fetchSubtree() Alias for fetchSubtreeDepthFirst().

fetchSubtreeBreadthFirst

ezcTreeNodeList fetchSubtreeBreadthFirst( string $nodeId )

Returns the node with ID $nodeId and all its children, sorted according to the Breadth-first sorting algorithm.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::fetchSubtreeBreadthFirst() Returns the node with ID $nodeId and all its children, sorted according to the Breadth-first sorting algorithm.

fetchSubtreeDepthFirst

ezcTreeNodeList fetchSubtreeDepthFirst( string $nodeId )

Returns the node with ID $nodeId and all its children, sorted accoring to the Depthth-first sorting algorithm.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::fetchSubtreeDepthFirst() Returns the node with ID $nodeId and all its children, sorted according to the Depth-first sorting algorithm.

fixateTransaction

void fixateTransaction( )

Fixates the transaction.

generateNodeID

integer generateNodeID( )

This method generates the next node ID.

Redefinition of:
Method Description
ezcTree::generateNodeID() This method generates the next node ID.

getChildCount

int getChildCount( string $nodeId )

Returns the number of direct children of the node with ID $nodeId.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::getChildCount() Returns the number of direct children of the node with ID $nodeId.

getChildCountRecursive

int getChildCountRecursive( string $nodeId )

Returns the number of children of the node with ID $nodeId, recursively

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::getChildCountRecursive() Returns the number of children of the node with ID $nodeId, recursively.

getPathLength

int getPathLength( string $nodeId )

Returns the distance from the root node to the node with ID $nodeId

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::getPathLength() Returns the distance from the root node to the node with ID $nodeId.

getRootNode

ezcTreeNode getRootNode( )

Returns the root node

This methods returns null if there is no root node.

Redefinition of:
Method Description
ezcTree::getRootNode() Returns the root node.

hasChildNodes

bool hasChildNodes( string $nodeId )

Returns whether the node with ID $nodeId has children

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::hasChildNodes() Returns whether the node with ID $nodeId has children.

isChildOf

bool isChildOf( string $childId , string $parentId )

Returns whether the node with ID $childId is a direct child of the node with ID $parentId

Parameters:
Name Type Description
$childId string
$parentId string
Redefinition of:
Method Description
ezcTree::isChildOf() Returns whether the node with ID $childId is a direct child of the node with ID $parentId.

isDescendantOf

bool isDescendantOf( string $childId , string $parentId )

Returns whether the node with ID $childId is a direct or indirect child of the node with ID $parentId

Parameters:
Name Type Description
$childId string
$parentId string
Redefinition of:
Method Description
ezcTree::isDescendantOf() Returns whether the node with ID $childId is a direct or indirect child of the node with ID $parentId.

isSiblingOf

bool isSiblingOf( string $child1Id , string $child2Id )

Returns whether the nodes with IDs $child1Id and $child2Id are siblings (ie, the share the same parent)

Parameters:
Name Type Description
$child1Id string
$child2Id string
Redefinition of:
Method Description
ezcTree::isSiblingOf() Returns whether the nodes with IDs $child1Id and $child2Id are siblings (ie, they share the same parent).

move

void move( string $nodeId , string $targetParentId )

Moves the node with ID $nodeId as child to the node with ID $targetParentId

Parameters:
Name Type Description
$nodeId string
$targetParentId string
Redefinition of:
Method Description
ezcTree::move() Moves the node with ID $nodeId as child to the node with ID $targetParentId.

nodeExists

bool nodeExists( string $nodeId )

Returns whether the node with ID $nodeId exists.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::nodeExists() Returns whether the node with ID $nodeId exists.

setRootNode

void setRootNode( ezcTreeNode $node )

Sets a new node as root node, this wipes also out the whole tree

Parameters:
Name Type Description
$node ezcTreeNode
Redefinition of:
Method Description
ezcTree::setRootNode() Sets a new node as root node, this also wipes out the whole tree.
Documentation generated by phpDocumentor 1.4.3