result = $result; } else if(is_string($result)) { $this->result = ValidationResult::create()->addError($result); } else if(!$result) { $this->result = ValidationResult::create()->addError(_t("ValdiationExcetpion.DEFAULT_ERROR", "Validation error")); } else { throw new InvalidArgumentException( "ValidationExceptions must be passed a ValdiationResult, a string, or nothing at all"); } // Construct parent::__construct($exceptionMessage ? $exceptionMessage : $this->result->message(), $code); } /** * Create a ValidationException with a message for a single field-specific error message. * * @param string $field The field name * @param string $message The error message * @return ValidationException */ static function create_for_field($field, $message) { $result = new ValidationResult; $result->addFieldError($field, $message); return new ValidationException($result); } /** * Retrieves the ValidationResult related to this error * * @return ValidationResult */ public function getResult() { return $this->result; } }