From c415a77272a5b99b01f5009b747f5b312c70be04 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Thu, 31 Aug 2023 13:02:00 +0300 Subject: [PATCH] Add InformativeValidatorByNameFactory. --- .../InformativeValidatorByNameFactory.php | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 app/Models/Validation/Messages/Factories/InformativeValidatorByNameFactory.php diff --git a/app/Models/Validation/Messages/Factories/InformativeValidatorByNameFactory.php b/app/Models/Validation/Messages/Factories/InformativeValidatorByNameFactory.php new file mode 100644 index 0000000..9081f11 --- /dev/null +++ b/app/Models/Validation/Messages/Factories/InformativeValidatorByNameFactory.php @@ -0,0 +1,57 @@ +messages = $messages; + } + + public function getMessages(): array + { + return $this->messages; + } + + public function setName(string $name): void + { + $this->name = $name; + } + + public function getName(): string + { + return $this->name; + } + + abstract public function getValidatorByName(InformativeValidator $okValidator): Validator; + + public function create(): InformativeValidator + { + $okValidator = new OkInformativeValidator($this->messages['found']); + + $nameValidator = new NextInformativeValidator( + $this->messages['not_found'], + $this->getValidatorByName($okValidator), + $okValidator + ); + + return new NextInformativeValidator( + $this->messages['invalid_name'], + new EmptyNameValidator($this->name, $nameValidator), + $nameValidator + ); + } +} +