Source for file Interface.php

Documentation is available at Interface.php

  1. <?php
  2. /*
  3.  *  $Id: Interface.php 1080 2007-02-10 18:17:08Z romanb $
  4.  *
  5.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  6.  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  7.  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  8.  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  9.  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  10.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  11.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  12.  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  13.  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  14.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  15.  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  16.  *
  17.  * This software consists of voluntary contributions made by many individuals
  18.  * and is licensed under the LGPL. For more information, see
  19.  * <http://www.phpdoctrine.com>.
  20.  */
  21. /**
  22.  * Doctrine_Node_Interface
  23.  *
  24.  * @package     Doctrine
  25.  * @license     http://www.opensource.org/licenses/lgpl-license.php LGPL
  26.  * @category    Object Relational Mapping
  27.  * @link        www.phpdoctrine.com
  28.  * @since       1.0
  29.  * @version     $Revision: 1080 $
  30.  * @author      Joe Simms <joe.simms@websites4.com>
  31.  */
  32.  
  33.     /**
  34.      * test if node has previous sibling
  35.      *
  36.      * @return bool 
  37.      */
  38.     public function hasPrevSibling();
  39.  
  40.     /**
  41.      * test if node has next sibling
  42.      *
  43.      * @return bool 
  44.      */
  45.     public function hasNextSibling();
  46.  
  47.     /**
  48.      * test if node has children
  49.      *
  50.      * @return bool 
  51.      */
  52.     public function hasChildren();
  53.  
  54.     /**
  55.      * test if node has parent
  56.      *
  57.      * @return bool 
  58.      */
  59.     public function hasParent();
  60.  
  61.     /**
  62.      * gets record of prev sibling or empty record
  63.      *
  64.      * @return object Doctrine_Record 
  65.      */
  66.     public function getPrevSibling();
  67.  
  68.     /**
  69.      * gets record of next sibling or empty record
  70.      *
  71.      * @return object Doctrine_Record 
  72.      */
  73.     public function getNextSibling();
  74.  
  75.     /**
  76.      * gets siblings for node
  77.      *
  78.      * @return array                            array of sibling Doctrine_Record objects
  79.      */
  80.     public function getSiblings($includeNode false);
  81.  
  82.     /**
  83.      * gets record of first child or empty record
  84.      *
  85.      * @return object Doctrine_Record 
  86.      */
  87.     public function getFirstChild();
  88.  
  89.     /**
  90.      * gets record of last child or empty record
  91.      *
  92.      * @return object Doctrine_Record 
  93.      */
  94.     public function getLastChild();
  95.  
  96.     /**
  97.      * gets children for node (direct descendants only)
  98.      *
  99.      * @return array                            array of sibling Doctrine_Record objects
  100.      */
  101.     public function getChildren();
  102.  
  103.     /**
  104.      * gets descendants for node (direct descendants only)
  105.      *
  106.      * @return iterator                         iterator to traverse descendants from node
  107.      */
  108.     public function getDescendants();
  109.  
  110.     /**
  111.      * gets record of parent or empty record
  112.      *
  113.      * @return object Doctrine_Record 
  114.      */
  115.     public function getParent();
  116.  
  117.     /**
  118.      * gets ancestors for node
  119.      *
  120.      * @return object Doctrine_Collection 
  121.      */
  122.     public function getAncestors();
  123.  
  124.     /**
  125.      * gets path to node from root, uses record::toString() method to get node names
  126.      *
  127.      * @param string $seperator                 path seperator
  128.      * @param bool $includeNode                 whether or not to include node at end of path
  129.      * @return string                           string representation of path
  130.      */
  131.     public function getPath($seperator ' > '$includeNode false);
  132.  
  133.     /**
  134.      * gets level (depth) of node in the tree
  135.      *
  136.      * @return int 
  137.      */
  138.     public function getLevel();
  139.  
  140.     /**
  141.      * gets number of children (direct descendants)
  142.      *
  143.      * @return int 
  144.      */
  145.     public function getNumberChildren();
  146.  
  147.     /**
  148.      * gets number of descendants (children and their children)
  149.      *
  150.      * @return int 
  151.      */
  152.     public function getNumberDescendants();
  153.  
  154.     /**
  155.      * inserts node as parent of dest record
  156.      *
  157.      * @return bool 
  158.      */
  159.     public function insertAsParentOf(Doctrine_Record $dest);
  160.  
  161.     /**
  162.      * inserts node as previous sibling of dest record
  163.      *
  164.      * @return bool 
  165.      */
  166.     public function insertAsPrevSiblingOf(Doctrine_Record $dest);
  167.  
  168.     /**
  169.      * inserts node as next sibling of dest record
  170.      *
  171.      * @return bool 
  172.      */
  173.     public function insertAsNextSiblingOf(Doctrine_Record $dest);
  174.  
  175.     /**
  176.      * inserts node as first child of dest record
  177.      *
  178.      * @return bool 
  179.      */
  180.     public function insertAsFirstChildOf(Doctrine_Record $dest);
  181.  
  182.     /**
  183.      * inserts node as first child of dest record
  184.      *
  185.      * @return bool 
  186.      */
  187.     public function insertAsLastChildOf(Doctrine_Record $dest);
  188.  
  189.     /**
  190.      * moves node as prev sibling of dest record
  191.      *
  192.      */  
  193.     public function moveAsPrevSiblingOf(Doctrine_Record $dest);
  194.  
  195.     /**
  196.      * moves node as next sibling of dest record
  197.      *
  198.      */
  199.     public function moveAsNextSiblingOf(Doctrine_Record $dest);
  200.  
  201.     /**
  202.      * moves node as first child of dest record
  203.      *
  204.      */
  205.     public function moveAsFirstChildOf(Doctrine_Record $dest);
  206.  
  207.     /**
  208.      * moves node as last child of dest record
  209.      *
  210.      */
  211.     public function moveAsLastChildOf(Doctrine_Record $dest);
  212.  
  213.     /**
  214.      * adds node as last child of record
  215.      *
  216.      */
  217.     public function addChild(Doctrine_Record $record);
  218.  
  219.     /**
  220.      * determines if node is leaf
  221.      *
  222.      * @return bool 
  223.      */
  224.     public function isLeaf();
  225.  
  226.     /**
  227.      * determines if node is root
  228.      *
  229.      * @return bool 
  230.      */
  231.     public function isRoot();
  232.  
  233.     /**
  234.      * determines if node is equal to subject node
  235.      *
  236.      * @return bool 
  237.      */
  238.     public function isEqualTo(Doctrine_Record $subj);
  239.  
  240.     /**
  241.      * determines if node is child of subject node
  242.      *
  243.      * @return bool 
  244.      */
  245.     public function isDescendantOf(Doctrine_Record $subj);
  246.  
  247.     /**
  248.      * determines if node is child of or sibling to subject node
  249.      *
  250.      * @return bool 
  251.      */
  252.     public function isDescendantOfOrEqualTo(Doctrine_Record $subj);
  253.  
  254.     /**
  255.      * determines if node is valid
  256.      *
  257.      * @return bool 
  258.      */
  259.     public function isValidNode();
  260.  
  261.     /**
  262.      * deletes node and it's descendants
  263.      *
  264.      */
  265.     public function delete();
  266. }