Constraint.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. /**
  3. * Validator constraint delegates validation to wrapped validator.
  4. *
  5. * Copyright © Magento, Inc. All rights reserved.
  6. * See COPYING.txt for license details.
  7. */
  8. namespace Magento\Framework\Validator;
  9. /**
  10. * @api
  11. * @since 100.0.2
  12. */
  13. class Constraint extends \Magento\Framework\Validator\AbstractValidator
  14. {
  15. /**
  16. * Wrapped validator
  17. *
  18. * @var \Magento\Framework\Validator\ValidatorInterface
  19. */
  20. protected $_wrappedValidator;
  21. /**
  22. * Alias can be used for search
  23. *
  24. * @var string
  25. */
  26. protected $_alias;
  27. /**
  28. * Constructor
  29. *
  30. * @param \Magento\Framework\Validator\ValidatorInterface $validator
  31. * @param string $alias
  32. */
  33. public function __construct(\Magento\Framework\Validator\ValidatorInterface $validator, $alias = null)
  34. {
  35. $this->_wrappedValidator = $validator;
  36. $this->_alias = $alias;
  37. }
  38. /**
  39. * Delegate validation to wrapped validator
  40. *
  41. * @param mixed $value
  42. * @return boolean
  43. * @api
  44. */
  45. public function isValid($value)
  46. {
  47. $result = true;
  48. $this->_clearMessages();
  49. if (!$this->_wrappedValidator->isValid($this->_getValidatorValue($value))) {
  50. $this->_addMessages($this->_wrappedValidator->getMessages());
  51. $result = false;
  52. }
  53. return $result;
  54. }
  55. /**
  56. * Get value that should be validated.
  57. *
  58. * @param mixed $value
  59. * @return mixed
  60. */
  61. protected function _getValidatorValue($value)
  62. {
  63. if (is_array($value)) {
  64. $value = new \Magento\Framework\DataObject($value);
  65. }
  66. return $value;
  67. }
  68. /**
  69. * Get constraint alias
  70. *
  71. * @return string
  72. * @api
  73. */
  74. public function getAlias()
  75. {
  76. return $this->_alias;
  77. }
  78. /**
  79. * Set translator to wrapped validator.
  80. *
  81. * @param \Magento\Framework\Translate\AdapterInterface|null $translator
  82. * @return \Magento\Framework\Validator\AbstractValidator
  83. */
  84. public function setTranslator($translator = null)
  85. {
  86. $this->_wrappedValidator->setTranslator($translator);
  87. return $this;
  88. }
  89. /**
  90. * Get translator instance of wrapped validator
  91. *
  92. * @return \Magento\Framework\Translate\AdapterInterface|null
  93. */
  94. public function getTranslator()
  95. {
  96. return $this->_wrappedValidator->getTranslator();
  97. }
  98. }