* @copyright Copyright © 2006 Peter Adams * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0 * @category owa * @package owa * @version $Revision$ * @since owa 1.0.0 */ class owa_validator extends owa_base { /** * Flag for whether or not a validation run produces errors * * @var boolean */ var $hasErrors; /** * Error Msgs produced by Validations * * @var array */ var $errorMsgs; /** * Validations to be performed in next validation run * * @var array */ var $validations; function __construct() { return parent::__construct(); } /** * Adds a validation to be performed in next run * * @param string $name the name to be given to the validation and its results * @param unknown $value the data value that is to be validated * @param string $validation the name of the validation to run * @param array $conf configuration array for the object being created */ function addValidation($name, $value, $validation, $conf) { // Construct validatation obj $obj = $this->validationFactory($validation); $obj->setValues($value); $obj->setConfigArray($conf); $this->validations[] = array('name' => $name, 'obj' => $obj); return; } function setValidation($name, $obj) { $this->validations[] = array('name' => $name, 'obj' => $obj); return; } /** * Factory method for producing validation objects * * @return Object */ function validationFactory($class_file) { return owa_coreAPI::validationFactory($class_file, $conf); } /** * Performs a validation run * */ function doValidations() { foreach ($this->validations as $k) { $k['obj']->validate(); if ($k['obj']->hasError === true) { $this->hasErrors = true; $this->errorMsgs[$k['name']] = $k['obj']->getErrorMsg(); if ($k['obj']->conf['stopOnError'] === true) { break; } } } } /** * Check to see if the validation run was successful. * * @return boolean */ function isValid() { if ($this->hasErrors == true): return false; else: return true; endif; } /** * Accessor method for retrieving the error msgs produced by a validation run * * @return array */ function getErrorMsgs() { return $this->errorMsgs; } } ?>