protected function addCustomValidators($targetClassName, ConjunctionValidator &$conjunctionValidator)
{
// Custom validator for the class
$addedValidatorClassName = null;
$possibleValidatorClassName = str_replace('\\Model\\', '\\Validator\\', $targetClassName) . 'Validator';
$customValidator = $this->createValidator($possibleValidatorClassName);
if ($customValidator !== null) {
$conjunctionValidator->addValidator($customValidator);
$addedValidatorClassName = get_class($customValidator);
}
// find polytype validator for class
$acceptablePolyTypeValidators = [];
$polyTypeObjectValidatorImplementationClassNames = static::getPolyTypeObjectValidatorImplementationClassNames($this->objectManager);
foreach ($polyTypeObjectValidatorImplementationClassNames as $validatorImplementationClassName) {
$acceptablePolyTypeValidator = $this->createValidator($validatorImplementationClassName);
// skip custom validator already added above
if ($addedValidatorClassName === get_class($acceptablePolyTypeValidator)) {
continue;
}
if ($acceptablePolyTypeValidator->canValidate($targetClassName)) {
$acceptablePolyTypeValidators[$acceptablePolyTypeValidator->getPriority()] = $acceptablePolyTypeValidator;
}
}
if (count($acceptablePolyTypeValidators) > 0) {
ksort($acceptablePolyTypeValidators);
$conjunctionValidator->addValidator(array_pop($acceptablePolyTypeValidators));
}
}