Pull merge.
[yaffs-website] / web / core / lib / Drupal / Core / Validation / Plugin / Validation / Constraint / NotNullConstraintValidator.php
1 <?php
2
3 namespace Drupal\Core\Validation\Plugin\Validation\Constraint;
4
5 use Drupal\Core\TypedData\ComplexDataInterface;
6 use Drupal\Core\TypedData\ListInterface;
7 use Drupal\Core\TypedData\Validation\TypedDataAwareValidatorTrait;
8 use Symfony\Component\Validator\Constraint;
9 use Symfony\Component\Validator\Constraints\NotNullValidator;
10
11 /**
12  * NotNull constraint validator.
13  *
14  * Overrides the symfony validator to handle empty Typed Data structures.
15  */
16 class NotNullConstraintValidator extends NotNullValidator {
17
18   use TypedDataAwareValidatorTrait;
19
20   /**
21    * {@inheritdoc}
22    */
23   public function validate($value, Constraint $constraint) {
24     $typed_data = $this->getTypedData();
25     if (($typed_data instanceof ListInterface || $typed_data instanceof ComplexDataInterface) && $typed_data->isEmpty()) {
26       $value = NULL;
27     }
28     parent::validate($value, $constraint);
29   }
30
31 }