Tree: ezcTreeXml
[ ]
[ ]
[ ]
[ ]
[ ]
Class: ezcTreeXml
|
ezcTreeXml is an implementation of a tree backend that operates on an XML file. [
source]
See
ezcTree for examples on how to operate on the tree.
Parents
ezcTree
|
--ezcTreeXml
Constants
relaxNG
= '<?xml version="1.0" encoding="UTF-8"?> <grammar xmlns:etd="http://components.ez.no/Tree/data" ns="http://components.ez.no/Tree" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <start> <element name="tree"> <optional> <attribute name="prefix"> <data type="ID"/> </attribute> </optional> <optional> <attribute name="lastNodeId"> <data type="string"/> </attribute> </optional> <optional> <ref name="node"/> </optional> </element> </start> <define name="node"> <element name="node"> <attribute name="id"> <data type="ID"/> </attribute> <optional> <element name="etd:data"> <text/> </element> </optional> <zeroOrMore> <ref name="node"/> </zeroOrMore> </element> </define> </grammar>'
|
Contains the relax-NG schema to validate the tree XML. |
Properties
|
string |
read/write
|
$nodeClassName
Which class is used as tree node - this class *must* inherit the ezcTreeNode class. |
|
string |
read
|
$prefix
The prefix that is used to prefix node IDs with in the tree. |
|
ezcTreeXmlDataStore |
read
|
$store
The data store that is used for retrieving/storing data. |
Inherited Member Variables
From
ezcTree:
Method Summary
|
public ezcTreeXml |
__construct(
$xmlFile, $store )
Constructs a new ezcTreeXml object from the XML data in $xmlFile and using the $store to retrieve data from. |
|
public void |
addChild(
$parentId, $childNode )
Adds the node $childNode as child of the node with ID $parentId. |
|
public static ezcTreeXml |
create(
$xmlFile, $store, [$prefix = 'id'] )
Creates a new XML tree in the file $xmlFile using $store as data store. |
|
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 |
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 according to the Depth-first sorting algorithm. |
|
public void |
fixateTransaction(
)
Fixates the transaction (saves the XML file). |
|
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, they 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 |
saveFile(
)
Saves the internal DOM representation of the tree back to disk. |
|
public void |
setRootNode(
$node )
Sets a new node as root node, this also wipes out the whole tree. |
Inherited Methods
From
ezcTree :
Methods
__construct
Constructs a new ezcTreeXml object from the XML data in $xmlFile and using the $store to retrieve data from.
Parameters
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. |
create
Creates a new XML tree in the file $xmlFile using $store as data store.
The $prefix option can be used to change the prefix that is used for IDs in the created tree. By default this is set to "id" so that numerical node IDs are not a problem.
Parameters
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
Returns all the children of the node with ID $nodeId.
Parameters
| Name |
Type |
Description |
$nodeId |
string |
|
Redefinition of
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
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
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
fetchSubtreeDepthFirst
Returns the node with ID $nodeId and all its children, sorted according to the
Depth-first sorting algorithm.
Parameters
| Name |
Type |
Description |
$nodeId |
string |
|
Redefinition of
fixateTransaction
void fixateTransaction(
)
Fixates the transaction (saves the XML file).
generateNodeID
integer generateNodeID(
)
This method generates the next node ID.
It uses the stored last generated ID, and also stores this in an attribute on the root node so that it can be correctly incremented without having to search for the last generated ID in the whole tree.
Redefinition of
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
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
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
getRootNode
Returns the root node.
This methods returns null if there is no root node.
Redefinition of
hasChildNodes
bool hasChildNodes(
string
$nodeId )
Returns whether the node with ID $nodeId has children.
Parameters
| Name |
Type |
Description |
$nodeId |
string |
|
Redefinition of
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, they 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
saveFile
void saveFile(
)
Saves the internal DOM representation of the tree back to disk.
setRootNode
Sets a new node as root node, this also wipes out the whole tree.
Parameters
Redefinition of
Last updated: Mon, 05 Jan 2009