vendor/shopware/core/Framework/DataAbstractionLayer/Validation/EntityExists.php line 15

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Framework\DataAbstractionLayer\Validation;
  3. use Shopware\Core\Framework\Context;
  4. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  5. use Symfony\Component\Validator\Constraint;
  6. use Symfony\Component\Validator\Exception\InvalidOptionsException;
  7. use Symfony\Component\Validator\Exception\MissingOptionsException;
  8. /**
  9.  * @Annotation
  10.  * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
  11.  */
  12. class EntityExists extends Constraint
  13. {
  14.     public const ENTITY_DOES_NOT_EXISTS 'f1e5c873-5baf-4d5b-8ab7-e422bfce91f1';
  15.     /**
  16.      * @var string
  17.      */
  18.     public $message 'The {{ entity }} entity with {{ primaryProperty }} {{ id }} does not exist.';
  19.     /**
  20.      * @var string
  21.      */
  22.     public $entity;
  23.     /**
  24.      * @var Context
  25.      */
  26.     public $context;
  27.     /**
  28.      * @var Criteria
  29.      */
  30.     public $criteria;
  31.     /**
  32.      * @var string
  33.      */
  34.     public $primaryProperty 'id';
  35.     /**
  36.      * @var array<string, string>
  37.      */
  38.     protected static $errorNames = [
  39.         self::ENTITY_DOES_NOT_EXISTS => 'ENTITY_DOES_NOT_EXISTS',
  40.     ];
  41.     /**
  42.      * @internal
  43.      */
  44.     public function __construct(array $options)
  45.     {
  46.         $options array_merge(
  47.             ['entity' => null'context' => null'criteria' => new Criteria()],
  48.             $options
  49.         );
  50.         parent::__construct($options);
  51.         if ($this->entity === null) {
  52.             throw new MissingOptionsException(sprintf('Option "entity" must be given for constraint %s'self::class), ['entity']);
  53.         }
  54.         if ($this->context === null) {
  55.             throw new MissingOptionsException(sprintf('Option "context" must be given for constraint %s'self::class), ['context']);
  56.         }
  57.         if (!($this->criteria instanceof Criteria)) {
  58.             throw new InvalidOptionsException(sprintf('Option "criteria" must be an instance of Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria for constraint %s'self::class), ['criteria']);
  59.         }
  60.     }
  61.     public function getContext(): Context
  62.     {
  63.         return $this->context;
  64.     }
  65.     public function getEntity(): string
  66.     {
  67.         return $this->entity;
  68.     }
  69.     public function getCriteria(): Criteria
  70.     {
  71.         return $this->criteria;
  72.     }
  73.     public function getPrimaryProperty(): string
  74.     {
  75.         return $this->primaryProperty;
  76.     }
  77. }