objectManager = $objectManager; $this->validatorResultFactory = $validatorResult; } /** * @param object $entity * @param ValidatorInterface[] $validators * @param object|null $context * @return ValidatorResultInterface * @throws ConfigurationMismatchException */ public function validate($entity, array $validators, $context = null) { $messages = []; $validatorArguments = []; if ($context !== null) { $validatorArguments['context'] = $context; } foreach ($validators as $validatorName) { $validator = $this->objectManager->create($validatorName, $validatorArguments); if (!$validator instanceof ValidatorInterface) { throw new ConfigurationMismatchException( __('The "%1" validator is not an instance of the general validator interface.', $validatorName) ); } $messages = array_merge($messages, $validator->validate($entity)); } $validationResult = $this->validatorResultFactory->create(); foreach ($messages as $message) { $validationResult->addMessage($message); } return $validationResult; } }