/**
  * {@inheritdoc}
  */
 public function validate($value, Constraint $constraint)
 {
     if (null === $value) {
         return;
     }
     if (!is_array($value) || !$value instanceof \Traversable) {
         if ($this->context instanceof ExecutionContextInterface) {
             $this->context->buildViolation($constraint->messageList)->setParameter('{{ type }}', is_object($value) ? get_class($value) : gettype($value))->setInvalidValue($value)->addViolation();
         } else {
             $this->buildViolation($constraint->messageList)->setParameter('{{ type }}', is_object($value) ? get_class($value) : gettype($value))->setInvalidValue($value)->addViolation();
         }
     }
     $validCodes = [];
     foreach ($this->attributeManager->getAttributes('pim_catalog_image') as $attribute) {
         $validCodes[] = $attribute->getCode();
     }
     foreach ($value as $code) {
         if (!in_array($code, $validCodes)) {
             if ($this->context instanceof ExecutionContextInterface) {
                 $this->context->buildViolation($constraint->message)->setParameter('{{ code }}', $code)->setInvalidValue($code)->addViolation();
             } else {
                 $this->buildViolation($constraint->message)->setParameter('{{ code }}', $code)->setInvalidValue($code)->addViolation();
             }
             return;
         }
     }
 }
 /**
  * {@inheritdoc}
  */
 public function validate($value, Constraint $constraint)
 {
     if (null === $value) {
         return;
     }
     foreach ($this->attributeManager->getAttributes('pim_catalog_image') as $attribute) {
         if ($attribute->getCode() === $value) {
             return;
         }
     }
     if ($this->context instanceof ExecutionContextInterface) {
         $this->context->buildViolation($constraint->message)->setParameter('{{ code }}', $value)->setInvalidValue($value)->addViolation();
     } else {
         $this->buildViolation($constraint->message)->setParameter('{{ code }}', $value)->setInvalidValue($value)->addViolation();
     }
 }