* @package tao */ class tao_helpers_form_validators_Equals extends tao_helpers_form_Validator { // --- ASSOCIATIONS --- // --- ATTRIBUTES --- // --- OPERATIONS --- public function setOptions(array $options) { parent::setOptions($options); if (!$this->hasOption('reference') || !$this->getOption('reference') instanceof tao_helpers_form_FormElement) { throw new common_Exception("No FormElement provided as reference for Equals validator"); } $reference = $this->getOption('reference'); if ($this->hasOption('invert') && $this->getOption('invert')) { $this->setMessage(__('This should not equal %s', $reference->getDescription())); } else { $this->setMessage(__('This should equal %s', $reference->getDescription())); } } /** * Short description of method evaluate * * @access public * @author Joel Bout, * @param values * @return boolean */ public function evaluate($values) { $returnValue = (bool) false; $invert = $this->hasOption('invert') ? $this->getOption('invert') : false; $reference = $this->getOption('reference'); $equals = ($values == $reference->getRawValue()); $returnValue = $invert ? !$equals : $equals; return (bool) $returnValue; } }