/**
  * Returns the validation errors for a data set based on the passed options
  *
  * @param array $data The data to validate.
  * @param array $options The options passed to this marshaller.
  * @param bool $isNew Whether it is a new entity or one to be updated.
  * @return array The list of validation errors.
  * @throws \RuntimeException If no validator can be created.
  */
 protected function _validate($data, $options, $isNew)
 {
     if (!$options['validate']) {
         return [];
     }
     if ($options['validate'] === true) {
         $options['validate'] = $this->type->validator('default');
     }
     if (is_string($options['validate'])) {
         $options['validate'] = $this->type->validator($options['validate']);
     }
     if (!is_object($options['validate'])) {
         throw new RuntimeException(sprintf('validate must be a boolean, a string or an object. Got %s.', gettype($options['validate'])));
     }
     return $options['validate']->errors($data, $isNew);
 }