/**
  * @param string $name
  * @param string  $value
  * @param bool   $stopOnError
  *
  * @return bool
  */
 public function validate($name, $value, $stopOnError = false)
 {
     $this->errors = [];
     if (null === $this->validator) {
         $this->validator = ValidatorFactory::create($name, $this->type, $this->rules);
     }
     $isValid = $this->validator->validate($value, $stopOnError);
     if (false === $isValid) {
         $this->errors = $this->validator->getErrors();
     }
     return $isValid;
 }
 /**
  * Validate Element
  *
  * @param BaseElementModel $element   Element
  * @param Validator        $validator Validator
  *
  * @return void
  */
 public function validateElement(BaseElementModel $element, AbstractValidator $validator)
 {
     $validator->validate($element);
     if ($validator->hasErrors()) {
         $exception = new RestException();
         $exception->setStatus(422)->setMessage('The request contains invalid arguments.')->setErrors($validator->getErrors());
         throw $exception;
     }
 }