You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.4KB

  1. <?php
  2. namespace Lc\CaracoleBundle\Container\Product;
  3. use App\Definition\Field\Product\ProductFamilyFieldDefinition;
  4. use App\Entity\Product\ProductFamily;
  5. use Lc\CaracoleBundle\Builder\Product\ProductFamilyBuilder;
  6. use Lc\CaracoleBundle\Factory\Product\ProductFamilyFactory;
  7. use Lc\CaracoleBundle\Repository\Product\ProductFamilyRepositoryQuery;
  8. use Lc\CaracoleBundle\Repository\Product\ProductFamilyStore;
  9. use Lc\CaracoleBundle\Resolver\ProductFamilyResolver;
  10. use Lc\CaracoleBundle\Solver\Product\ProductFamilySolver;
  11. class ProductFamilyContainer
  12. {
  13. protected ProductFamilyFactory $factory;
  14. protected ProductFamilySolver $solver;
  15. protected ProductFamilyRepositoryQuery $repositoryQuery;
  16. protected ProductFamilyStore $store;
  17. protected ProductFamilyBuilder $builder;
  18. protected ProductFamilyResolver $resolver;
  19. protected ProductFamilyFieldDefinition $fieldDefinition;
  20. public function __construct(
  21. ProductFamilyFactory $factory,
  22. ProductFamilySolver $solver,
  23. ProductFamilyRepositoryQuery $repositoryQuery,
  24. ProductFamilyStore $store,
  25. ProductFamilyBuilder $builder,
  26. ProductFamilyResolver $resolver,
  27. ProductFamilyFieldDefinition $fieldDefinition
  28. ) {
  29. $this->factory = $factory;
  30. $this->solver = $solver;
  31. $this->repositoryQuery = $repositoryQuery;
  32. $this->store = $store;
  33. $this->builder = $builder;
  34. $this->resolver = $resolver;
  35. $this->fieldDefinition = $fieldDefinition;
  36. }
  37. public static function getEntityFqcn()
  38. {
  39. return ProductFamily::class;
  40. }
  41. public function getFactory(): ProductFamilyFactory
  42. {
  43. return $this->factory;
  44. }
  45. public function getSolver(): ProductFamilySolver
  46. {
  47. return $this->solver;
  48. }
  49. public function getRepositoryQuery(): ProductFamilyRepositoryQuery
  50. {
  51. return $this->repositoryQuery;
  52. }
  53. public function getStore(): ProductFamilyStore
  54. {
  55. $this->store->resetContext();
  56. return $this->store;
  57. }
  58. public function getResolver(): ProductFamilyResolver
  59. {
  60. return $this->resolver;
  61. }
  62. public function getBuilder(): ProductFamilyBuilder
  63. {
  64. return $this->builder;
  65. }
  66. public function getFieldDefinition(): ProductFamilyFieldDefinition
  67. {
  68. return $this->fieldDefinition;
  69. }
  70. }