for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace AmaTeam\ElasticSearch\Mapping\Validation\Constraint;
use AmaTeam\ElasticSearch\Mapping\Type\Infrastructure\Registry as TypeRegistry;
use AmaTeam\ElasticSearch\Mapping\Type\Parameter\Infrastructure\Registry as ParameterRegistry;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class ApplicableParameterValidator extends ConstraintValidator
{
/**
* @inheritDoc
* @param ApplicableParameter $constraint
*/
public function validate($value, Constraint $constraint)
$type = TypeRegistry::getInstance()->find($constraint->type);
$parameter = ParameterRegistry::getInstance()->find($constraint->parameter);
if (!$type || !$parameter || !in_array($parameter, $type->getParameters())) {
$this
->context
->buildViolation($constraint->message)
->setParameter('{{ type }}', $constraint->type)
->setParameter('{{ parameter }}', $constraint->parameter)
->addViolation();
}