* * 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\Rules; use Respect\Validation\Exceptions\NoneOfException; /** * @author Alexandre Gomes Gaigalas * @author Henrique Moody */ class NoneOf extends AbstractComposite { /** * {@inheritdoc} */ public function assert($input): void { $exceptions = $this->getAllThrownExceptions($input); $numRules = count($this->getRules()); $numExceptions = count($exceptions); if ($numRules !== $numExceptions) { /** @var NoneOfException $noneOfException */ $noneOfException = $this->reportError($input); $noneOfException->addChildren($exceptions); throw $noneOfException; } } /** * {@inheritdoc} */ public function validate($input): bool { foreach ($this->getRules() as $rule) { if ($rule->validate($input)) { return false; } } return true; } }