PHP Demo Application - Source Code
/Framework/Model/DataObjects/Parameters/Collections/DataItems.php
<?php
/**
* Script Contents: Apeel_Framework_Model_DataObjects_Parameters_Collections_DataItems Class
* which extends Apeel_Framework_Model_DataObjects_Parameters_Collections_Abstract
* @package Apeel_Framework_Model_DataObjects
*/
/**
* Collection of Apeel_Framework_Model_DataObjects_Parameters_DataItem parameter
* objects with functionality to add, clear and update parameters.
*
* Parameter items can be added by both the constructor and the addParameter(...)
* method. Existing parameters can be updated through updateParameter(...) and
* can be cleared through the base class clear() method.
*
* @package Apeel_Framework_Model_DataObjects
* @version 1.1.0
* @author John W. King (email: contact@apeelframework.net)
* @copyright City Business Logic Limited 2001-2011
* @license Dual MIT / GNU Lesser General Public License Version 3
*/
class Apeel_Framework_Model_DataObjects_Parameters_Collections_DataItems extends Apeel_Framework_Model_DataObjects_Parameters_Collections_Abstract {
/**
* Constructor can optionally automatically add first parameter by
* specifying it's values.
*
* @param string $parameterName
* @param string $type (valid values: 's', 'i', 'b', 'l', '')
* @param mixed $value
* @return void
*/
public function __construct($parameterName = NULL, $_parameterType = NULL, $value = NULL) {
if (($parameterName) && ($_parameterType)) {
$this->addParameter($parameterName, $_parameterType, $value);
}
}
/**
* Add a new Parameter to the collection by specifying it's values.
*
* A new instance of Apeel_Framework_Model_DataObjects_Parameters_DataItem
* is created, it's properties are set and added to the collection.
*
* An index value is appended to each $parameterName to ensure it is unique.
*
* @param string $parameterName
* @param string $type (valid values: 's', 'i', 'b', 'l', '')
* @param mixed $value
* @return string
*/
public function addParameter($parameterName, $_parameterType, $value) {
$parameter = new Apeel_Framework_Model_DataObjects_Parameters_DataItem();
$parameter->parameterName = str_replace('.', '_', $parameterName) . $this->getCount();
$parameter->_parameterType = $_parameterType;
$parameter->value = $value;
$this->add($parameter);
return $parameter->parameterName;
}
/**
* Updates the value of an existing, parameter object.
*
* If it does not exist in the collection, an exception is thrown.
*
* @param string $parameterName
* @param mixed $value
* @return void
*/
public function updateParameter($parameterName, $value) {
$found = false;
if ($this->items) {
foreach($this->items as $parameter) {
if ($parameter->parameterName == $parameterName) {
$parameter->value = $value;
$found = true;
break;
}
}
}
if (!$found) {
throw new Exception('Unable to modify non-existant parameter [' . $parameterName . ']');
}
}
}
?>