/** * @param Generic\OneOfConstraint $constraint * * @return Result\ValidationResult */ public function visitOneOfConstraint(Generic\OneOfConstraint $constraint) { if (1 === count($constraint->schemas())) { $schemas = $constraint->schemas(); return $schemas[0]->accept($this); } $validResults = array(); foreach ($constraint->schemas() as $schema) { $result = $schema->accept($this); if ($result->isValid()) { $validResults[] = $result; } } if (1 === count($validResults)) { return array_shift($validResults); } return $this->createSingleIssueResult($constraint); }
/** * @param Generic\OneOfConstraint $constraint * * @return Generic\OneOfConstraint */ public function visitOneOfConstraint(Generic\OneOfConstraint $constraint) { return new Generic\OneOfConstraint($this->transformConstraintArray($constraint->schemas())); }