diff --git a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityChangedConstraint.php b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityChangedConstraint.php index 6fe462f..d1a21fd 100644 --- a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityChangedConstraint.php +++ b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityChangedConstraint.php @@ -9,7 +9,6 @@ use Drupal\Core\Validation\Plugin\Validation\Constraint\ConstraintBase; use Drupal\Core\Entity\EntityChangedInterface; -use Symfony\Component\Validator\Constraint; /** * Validation constraint for the entity changed timestamp. diff --git a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityTypeConstraint.php b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityTypeConstraint.php index df25b6c..4e03360 100644 --- a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityTypeConstraint.php +++ b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityTypeConstraint.php @@ -7,7 +7,7 @@ namespace Drupal\Core\Entity\Plugin\Validation\Constraint; -use Symfony\Component\Validator\Constraint; +use Drupal\Core\Validation\Plugin\Validation\Constraint\ConstraintBase; /** * Checks if a value is a valid entity type. @@ -18,7 +18,7 @@ * type = { "entity", "entity_reference" } * ) */ -class EntityTypeConstraint extends Constraint { +class EntityTypeConstraint extends ConstraintBase { /** * The default violation message. @@ -47,4 +47,14 @@ public function getDefaultOption() { public function getRequiredOptions() { return array('type'); } + + /** + * {@inheritdoc} + */ + public function validateValue($entity) { + /** @var $entity \Drupal\Core\Entity\EntityInterface */ + if ($entity->getEntityTypeId() != $this->type) { + $this->context->addViolation($this->message, array('%type' => $this->type)); + } + } } diff --git a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityTypeConstraintValidator.php b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityTypeConstraintValidator.php deleted file mode 100644 index 5e316ca..0000000 --- a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/EntityTypeConstraintValidator.php +++ /dev/null @@ -1,29 +0,0 @@ -getEntityTypeId() != $constraint->type) { - $this->context->addViolation($constraint->message, array('%type' => $constraint->type)); - } - } -} diff --git a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraint.php b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraint.php index 2a7d6a9..c5558a3 100644 --- a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraint.php +++ b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraint.php @@ -7,7 +7,7 @@ namespace Drupal\Core\Entity\Plugin\Validation\Constraint; -use Symfony\Component\Validator\Constraint; +use Drupal\Core\Validation\Plugin\Validation\Constraint\ConstraintBase; /** * Entity Reference valid reference constraint. @@ -19,7 +19,7 @@ * label = @Translation("Entity Reference valid reference", context = "Validation") * ) */ -class ValidReferenceConstraint extends Constraint { +class ValidReferenceConstraint extends ConstraintBase { /** * The default violation message. @@ -28,4 +28,19 @@ class ValidReferenceConstraint extends Constraint { */ public $message = 'The referenced entity (%type: %id) does not exist.'; + /** + * {@inheritdoc} + */ + public function validateValue($value) { + $id = $value->get('target_id')->getValue(); + // '0' or NULL are considered valid empty references. + if (empty($id)) { + return; + } + $referenced_entity = $value->get('entity')->getTarget(); + if (!$referenced_entity) { + $type = $value->getFieldDefinition()->getSetting('target_type'); + $this->context->addViolation($this->message, array('%type' => $type, '%id' => $id)); + } + } } diff --git a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraintValidator.php b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraintValidator.php deleted file mode 100644 index bc269c5..0000000 --- a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraintValidator.php +++ /dev/null @@ -1,36 +0,0 @@ -get('target_id')->getValue(); - // '0' or NULL are considered valid empty references. - if (empty($id)) { - return; - } - $referenced_entity = $value->get('entity')->getTarget(); - if (!$referenced_entity) { - $type = $value->getFieldDefinition()->getSetting('target_type'); - $this->context->addViolation($constraint->message, array('%type' => $type, '%id' => $id)); - } - } -}