result = new WPAM_Validation_ValidatorResult(); } public function addValidator($field, WPAM_Validation_IValidator $validator) { if (!array_key_exists($field, $this->validators)) $this->validators[$field] = array(); $this->validators[$field][] = $validator; } public function validate($request) { foreach ($this->validators as $field => $validators) { foreach ($validators as $validator) { if (!$validator->isValid($request[$field])) { $this->addError( new WPAM_Validation_ValidatorError( $field, $validator->getError() ) ); } } } return $this->result; } public function addError( WPAM_Validation_ValidatorError $error ) { $this->result->addError( $error ); } }