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. |