* * For the full copyright and license information, please view the "LICENSE.md" * file that was distributed with this source code. */ declare(strict_types=1); namespace Respect\Validation\Exceptions; /** * @author Alexandre Gomes Gaigalas * @author Danilo Correa * @author Henrique Moody */ final class LengthException extends ValidationException { public const BOTH = 'both'; public const LOWER = 'lower'; public const GREATER = 'greater'; public const EXACT = 'exact'; /** * {@inheritdoc} */ public static $defaultTemplates = [ self::MODE_DEFAULT => [ self::BOTH => '{{name}} must have a length between {{minValue}} and {{maxValue}}', self::LOWER => '{{name}} must have a length greater than {{minValue}}', self::GREATER => '{{name}} must have a length lower than {{maxValue}}', self::EXACT => '{{name}} must have a length of {{maxValue}}', ], self::MODE_NEGATIVE => [ self::BOTH => '{{name}} must not have a length between {{minValue}} and {{maxValue}}', self::LOWER => '{{name}} must not have a length greater than {{minValue}}', self::GREATER => '{{name}} must not have a length lower than {{maxValue}}', self::EXACT => '{{name}} must not have a length of {{maxValue}}', ], ]; /** * {@inheritdoc} */ protected function chooseTemplate(): string { if (!$this->getParam('minValue')) { return self::GREATER; } if (!$this->getParam('maxValue')) { return self::LOWER; } if ($this->getParam('minValue') == $this->getParam('maxValue')) { return self::EXACT; } return self::BOTH; } }