AbstractValidator.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Validator;
  7. /**
  8. * Abstract validator class.
  9. *
  10. * @api
  11. * @since 100.0.2
  12. */
  13. abstract class AbstractValidator implements \Magento\Framework\Validator\ValidatorInterface
  14. {
  15. /**
  16. * @var \Magento\Framework\Translate\AdapterInterface|null
  17. */
  18. protected static $_defaultTranslator = null;
  19. /**
  20. * @var \Magento\Framework\Translate\AdapterInterface|null
  21. */
  22. protected $_translator = null;
  23. /**
  24. * Array of validation failure messages
  25. *
  26. * @var array
  27. */
  28. protected $_messages = [];
  29. /**
  30. * Set default translator instance
  31. *
  32. * @param \Magento\Framework\Translate\AdapterInterface|null $translator
  33. * @return void
  34. * @api
  35. */
  36. public static function setDefaultTranslator(\Magento\Framework\Translate\AdapterInterface $translator = null)
  37. {
  38. self::$_defaultTranslator = $translator;
  39. }
  40. /**
  41. * Get default translator
  42. *
  43. * @return \Magento\Framework\Translate\AdapterInterface|null
  44. * @api
  45. */
  46. public static function getDefaultTranslator()
  47. {
  48. return self::$_defaultTranslator;
  49. }
  50. /**
  51. * Set translator instance
  52. *
  53. * @param \Magento\Framework\Translate\AdapterInterface|null $translator
  54. * @return \Magento\Framework\Validator\AbstractValidator
  55. */
  56. public function setTranslator($translator = null)
  57. {
  58. $this->_translator = $translator;
  59. return $this;
  60. }
  61. /**
  62. * Get translator
  63. *
  64. * @return \Magento\Framework\Translate\AdapterInterface|null
  65. */
  66. public function getTranslator()
  67. {
  68. if ($this->_translator === null) {
  69. return self::getDefaultTranslator();
  70. }
  71. return $this->_translator;
  72. }
  73. /**
  74. * Check that translator is set.
  75. *
  76. * @return boolean
  77. */
  78. public function hasTranslator()
  79. {
  80. return $this->_translator !== null;
  81. }
  82. /**
  83. * Get validation failure messages
  84. *
  85. * @return string[]
  86. * @api
  87. */
  88. public function getMessages()
  89. {
  90. return $this->_messages;
  91. }
  92. /**
  93. * Whether it has failure messages
  94. *
  95. * @return bool
  96. * @api
  97. */
  98. public function hasMessages()
  99. {
  100. return !empty($this->_messages);
  101. }
  102. /**
  103. * Clear messages
  104. *
  105. * @return void
  106. */
  107. protected function _clearMessages()
  108. {
  109. $this->_messages = [];
  110. }
  111. /**
  112. * Add messages
  113. *
  114. * @param array $messages
  115. * @return void
  116. */
  117. protected function _addMessages(array $messages)
  118. {
  119. $this->_messages = array_merge_recursive($this->_messages, $messages);
  120. }
  121. }