* * For the full copyright and license information, please view the LICENSE file * that was distributed with this source code. */ declare(strict_types=1); namespace Respect\Validation\Exceptions; use function count; /** * @author Henrique Moody */ final class KeySetException extends GroupedValidationException implements NonOmissibleException { public const STRUCTURE = 'structure'; /** * {@inheritDoc} */ protected $defaultTemplates = [ self::MODE_DEFAULT => [ self::NONE => 'All of the required rules must pass for {{name}}', self::SOME => 'These rules must pass for {{name}}', self::STRUCTURE => 'Must have keys {{keys}}', ], self::MODE_NEGATIVE => [ self::NONE => 'None of these rules must pass for {{name}}', self::SOME => 'These rules must not pass for {{name}}', self::STRUCTURE => 'Must not have keys {{keys}}', ], ]; /** * {@inheritDoc} */ protected function chooseTemplate(): string { if (count($this->getChildren()) === 0) { return self::STRUCTURE; } return parent::chooseTemplate(); } }