ForwardFW
[ class tree: ForwardFW ] [ index: ForwardFW ] [ all elements ]

Source for file List.php

Documentation is available at List.php

  1. <?php
  2. declare(encoding "utf-8");
  3. /**
  4.  * This file is part of ForwardFW a web application framework.
  5.  *
  6.  * This library is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU General Public
  8.  * License as published by the Free Software Foundation; either
  9.  * version 2.1 of the License, or (at your option) any later version.
  10.  *
  11.  * This library is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14.  * General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public
  17.  * License along with this library; if not, write to the Free Software
  18.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19.  *
  20.  * PHP version 5
  21.  *
  22.  * @category   List
  23.  * @package    ForwardFW
  24.  * @subpackage Main
  25.  * @author     Alexander Opitz <opitz.alexander@primacom.net>
  26.  * @copyright  2009,2010 The Authors
  27.  * @license    http://www.gnu.org/copyleft/gpl.html GNU General Public License
  28.  * @version    SVN: $Id: $
  29.  * @link       http://forwardfw.sourceforge.net
  30.  * @since      File available since Release 0.0.1
  31.  */
  32.  
  33. require_once 'ForwardFW/Object.php';
  34.  
  35. /**
  36.  * This is the basic List class for ForwardFW Object
  37.  *
  38.  * @category   List
  39.  * @package    ForwardFW
  40.  * @subpackage Main
  41.  * @author     Alexander Opitz <opitz.alexander@primacom.net>
  42.  * @license    http://www.gnu.org/copyleft/gpl.html GNU General Public License
  43.  * @link       http://forwardfw.sourceforge.net
  44.  */
  45. class ForwardFW_List extends ArrayObject
  46. {
  47.     /**
  48.     * Name of the object this list will manage
  49.     *
  50.     * @var string 
  51.     */
  52.     protected $strObjectName = '';
  53.  
  54.     /**
  55.      * Constructor
  56.      *
  57.      * @return void 
  58.      */
  59.     public function __construct()
  60.     {
  61.         $this->strObjectName
  62.             = preg_replace('/\_List\_/''_Object_'get_class($this));
  63.     }
  64.  
  65.  
  66.  
  67.     /**
  68.      * Creates a new object of type $strObjectName which won't be added to list
  69.      * and returns this object.
  70.      *
  71.      * @return ForwardFW_Object The created Base_Object
  72.      */
  73.     public function createNew()
  74.     {
  75.         return new $this->strObjectName();
  76.     }
  77.  
  78.  
  79.  
  80.     /**
  81.      * Creates a new Object of type $strObjectName, adds it to the list and
  82.      * returns the object
  83.      *
  84.      * @return ForwardFW_Object 
  85.      */
  86.     public function createNewToList()
  87.     {
  88.         $obj $this->createNew();
  89.         $this->append($obj);
  90.         return $obj;
  91.     }
  92.  
  93.  
  94.  
  95.     /**
  96.      * Adds object to the list
  97.      * 
  98.      * @param ForwardFW_Object $obj The object which should be add
  99.      *
  100.      * @return boolean if $obj could be add to the list
  101.      */
  102.     public function addToList(ForwardFW_Object $obj)
  103.     {
  104.         $bIsUseable false;
  105.         if ($this->isUseable($obj)) {
  106.             $this->append($obj);
  107.             $bIsUseable true;
  108.         }
  109.         return $bIsUseable;
  110.     }
  111.  
  112.  
  113.  
  114.     /**
  115.      * Removes given Object from List and returns state if it was in list.
  116.      *
  117.      * @param ForwardFW_Object $obj The object that should be removed from list.
  118.      *
  119.      * @return boolean True if object could be removed otherwise false
  120.      */
  121.     function removeFromList(T3_Object_Base $obj)
  122.     {
  123.         $bWasRemoveable false;
  124.         if ($this->isUseable($obj)) {
  125.             foreach ($this as $key => $value{
  126.                 if ($value->ID == $obj->ID{
  127.                     unset($this[$key]);
  128.                     $bWasRemoveable true;
  129.                 }
  130.             }
  131.         }
  132.         return $bWasRemoveable;
  133.     }
  134.  
  135.  
  136.  
  137.     /**
  138.      * Creates a new object of the List type, loads it with the array information
  139.      * and add it to the list.
  140.      *
  141.      * @param array $arObject An Array which have fill up Data for the object
  142.      *
  143.      * @return void 
  144.      */
  145.     public function addObjectByArray($arObject)
  146.     {
  147.         $obj $this->createNew();
  148.         $obj->loadByArray($arObject);
  149.         $this->append($obj);
  150.     }
  151.  
  152.  
  153.  
  154.     /**
  155.      * Loads an array to this list. The array needs to hold arrays with the data
  156.      * of the object.
  157.      *
  158.      * @param array $arData the array with the objects for this list.
  159.      *
  160.      * @return void 
  161.      */
  162.     public function loadByArray($arData)
  163.     {
  164.         if (is_array($arData)) {
  165.             foreach ($arData as $arObject{
  166.                 $this->addObjectByArray($arObject);
  167.             }
  168.         }
  169.     }
  170.  
  171.  
  172.  
  173.     /**
  174.      * Examines if the given object is from typet this list will hold.
  175.      *
  176.      * @param ForwardFW_Object $obj Object to examine
  177.      *
  178.      * @return boolean True if given object can be managed by this list
  179.      *  otherwise false.
  180.      * @TODO: Examine if it is a child of type
  181.      */
  182.     public function isUseable(ForwardFW_Object $obj)
  183.     {
  184.         if ($this->strObjectName === get_class($obj)) {
  185.             return true;
  186.         else {
  187.             return false;
  188.         }
  189.     }
  190.  
  191.  
  192.  
  193.     /**
  194.      * Sorts the array
  195.      *
  196.      * @return void 
  197.      */
  198.     public function sort()
  199.     {
  200.         $this->uasort('strcmp');
  201.     }
  202.  
  203.  
  204.  
  205.     /**
  206.      * Returns the Name of the objects this list will manage
  207.      *
  208.      * @return string Name of the objects
  209.      */
  210.     public function getObjectName()
  211.     {
  212.         return $this->strObjectName;
  213.     }
  214. }
  215. ?>

Documentation generated on Sun, 30 Jan 2011 20:46:43 +0100 by phpDocumentor 1.4.3