ValidatorResultMerger.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Model;
  7. /**
  8. * Class ValidatorResultMerger
  9. */
  10. class ValidatorResultMerger
  11. {
  12. /**
  13. * @var ValidatorResultInterfaceFactory
  14. */
  15. private $validatorResultInterfaceFactory;
  16. /**
  17. * ValidatorResultMerger constructor.
  18. *
  19. * @param ValidatorResultInterfaceFactory $validatorResultInterfaceFactory
  20. */
  21. public function __construct(ValidatorResultInterfaceFactory $validatorResultInterfaceFactory)
  22. {
  23. $this->validatorResultInterfaceFactory = $validatorResultInterfaceFactory;
  24. }
  25. /**
  26. * Merge two validator results and additional messages
  27. *
  28. * @param ValidatorResultInterface $first
  29. * @param ValidatorResultInterface $second
  30. * @param \string[] $validatorMessages
  31. * @return ValidatorResultInterface
  32. */
  33. public function merge(ValidatorResultInterface $first, ValidatorResultInterface $second, ... $validatorMessages)
  34. {
  35. $messages = array_merge($first->getMessages(), $second->getMessages(), ...$validatorMessages);
  36. $result = $this->validatorResultInterfaceFactory->create();
  37. foreach ($messages as $message) {
  38. $result->addMessage($message);
  39. }
  40. return $result;
  41. }
  42. }