--- a/busui/owa/modules/base/classes/validator.php +++ b/busui/owa/modules/base/classes/validator.php @@ -1,1 +1,146 @@ - + + * @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; + } + + + } + +?>