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:
- <?php
 - // Create a new tree
 - // or
 - ?>
 
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
A factory method that creates a new empty tree using the data store $store.
Parameters:
| Name | Type | Description | 
|---|---|---|
$store | 
                ezcTreeMemoryDataStore | 
__construct
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
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
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
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
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
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
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
Alias for fetchSubtreeDepthFirst().
Parameters:
| Name | Type | Description | 
|---|---|---|
$nodeId | 
              string | 
Redefinition of:
| Method | Description | 
|---|---|
ezcTree::fetchSubtree() | 
            Alias for fetchSubtreeDepthFirst(). | 
fetchSubtreeBreadthFirst
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
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
Fixates the transaction.
generateNodeID
This method generates the next node ID.
Redefinition of:
| Method | Description | 
|---|---|
ezcTree::generateNodeID() | 
            This method generates the next node ID. | 
getChildCount
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
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
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
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
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
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
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
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
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
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
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. |