custom/plugins/PickwareErpStarter/src/OrderPickability/Decorator/DefinitionInstanceRegistryDecorator.php line 39

Open in your IDE?
  1. <?php
  2. /*
  3.  * Copyright (c) Pickware GmbH. All rights reserved.
  4.  * This file is part of software that is released under a proprietary license.
  5.  * You must not copy, modify, distribute, make publicly available, or execute
  6.  * its contents or parts thereof without express permission by the copyright
  7.  * holder, unless otherwise permitted by law.
  8.  */
  9. declare(strict_types=1);
  10. namespace Pickware\PickwareErpStarter\OrderPickability\Decorator;
  11. use Pickware\PickwareErpStarter\OrderPickability\OrderPickabilityCalculator;
  12. use Pickware\PickwareErpStarter\OrderPickability\OrderPickabilityCriteriaFilterResolver;
  13. use Shopware\Core\Framework\DataAbstractionLayer\Dbal\FieldAccessorBuilder\FieldAccessorBuilderInterface;
  14. use Shopware\Core\Framework\DataAbstractionLayer\DefinitionInstanceRegistry;
  15. use Shopware\Core\Framework\DataAbstractionLayer\Entity;
  16. use Shopware\Core\Framework\DataAbstractionLayer\EntityDefinition;
  17. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
  18. use Shopware\Core\Framework\DataAbstractionLayer\FieldSerializer\FieldSerializerInterface;
  19. class DefinitionInstanceRegistryDecorator extends DefinitionInstanceRegistry
  20. {
  21.     private DefinitionInstanceRegistry $decoratedInstance;
  22.     private OrderPickabilityCalculator $orderPickabilityCalculator;
  23.     private OrderPickabilityCriteriaFilterResolver $orderPickabilityCriteriaFilterResolver;
  24.     public function __construct(
  25.         DefinitionInstanceRegistry $decoratedInstance,
  26.         OrderPickabilityCalculator $orderPickabilityCalculator,
  27.         OrderPickabilityCriteriaFilterResolver $orderPickabilityCriteriaFilterResolver
  28.     ) {
  29.         $this->decoratedInstance $decoratedInstance;
  30.         $this->orderPickabilityCalculator $orderPickabilityCalculator;
  31.         $this->orderPickabilityCriteriaFilterResolver $orderPickabilityCriteriaFilterResolver;
  32.     }
  33.     public function getRepository(string $entityName): EntityRepositoryInterface
  34.     {
  35.         return new EntityRepositoryDecorator(
  36.             $this->decoratedInstance->getRepository($entityName),
  37.             $this->orderPickabilityCalculator,
  38.             $this->orderPickabilityCriteriaFilterResolver,
  39.         );
  40.     }
  41.     public function get(string $class): EntityDefinition
  42.     {
  43.         return $this->decoratedInstance->get($class);
  44.     }
  45.     public function getByClassOrEntityName(string $key): EntityDefinition
  46.     {
  47.         return $this->decoratedInstance->getByClassOrEntityName($key);
  48.     }
  49.     public function has(string $name): bool
  50.     {
  51.         return $this->decoratedInstance->has($name);
  52.     }
  53.     public function getByEntityName(string $entityName): EntityDefinition
  54.     {
  55.         return $this->decoratedInstance->getByEntityName($entityName);
  56.     }
  57.     public function getDefinitions(): array
  58.     {
  59.         return $this->decoratedInstance->getDefinitions();
  60.     }
  61.     public function getSerializer(string $serializerClass): FieldSerializerInterface
  62.     {
  63.         return $this->decoratedInstance->getSerializer($serializerClass);
  64.     }
  65.     public function getResolver(string $resolverClass)
  66.     {
  67.         return $this->decoratedInstance->getResolver($resolverClass);
  68.     }
  69.     public function getAccessorBuilder(string $accessorBuilderClass): FieldAccessorBuilderInterface
  70.     {
  71.         return $this->decoratedInstance->getAccessorBuilder($accessorBuilderClass);
  72.     }
  73.     public function getByEntityClass(Entity $entity): ?EntityDefinition
  74.     {
  75.         return $this->decoratedInstance->getByEntityClass($entity);
  76.     }
  77.     public function register(EntityDefinition $definition, ?string $serviceId null): void
  78.     {
  79.         $this->decoratedInstance->register($definition$serviceId);
  80.     }
  81. }