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

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