_rules)) { $this->_rules[$fieldName] = $validator; } else { $existingValidator = $this->_rules[$fieldName]; if (!$existingValidator instanceof \Zend_Validate) { $compositeValidator = new \Zend_Validate(); $compositeValidator->addValidator($existingValidator); $this->_rules[$fieldName] = $compositeValidator; } $this->_rules[$fieldName]->addValidator($validator); } return $this; } /** * Check whether the entity is valid according to defined validation rules * * @param \Magento\Framework\DataObject $entity * @return bool * * @throws \Exception * @api */ public function isValid($entity) { $this->_messages = []; /** @var $validator \Zend_Validate_Interface */ foreach ($this->_rules as $fieldName => $validator) { $value = $fieldName ? $entity->getDataUsingMethod($fieldName) : $entity; if (!$validator->isValid($value)) { $this->_messages = array_merge($this->_messages, array_values($validator->getMessages())); } } return empty($this->_messages); } /** * Return error messages (if any) after the last validation * * @return array */ public function getMessages() { return $this->_messages; } }