SourceSelectionResult.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\InventorySourceSelection\Model\Result;
  8. use Magento\InventorySourceSelectionApi\Api\Data\SourceSelectionItemInterface;
  9. use Magento\InventorySourceSelectionApi\Api\Data\SourceSelectionResultInterface;
  10. use Magento\Framework\Model\AbstractExtensibleModel;
  11. use Magento\InventorySourceSelectionApi\Api\Data\SourceSelectionResultExtensionInterface;
  12. /**
  13. * @inheritdoc
  14. */
  15. class SourceSelectionResult extends AbstractExtensibleModel implements SourceSelectionResultInterface
  16. {
  17. /**
  18. * @var SourceSelectionItemInterface[]
  19. */
  20. private $sourceItemSelections;
  21. /**
  22. * @var bool
  23. */
  24. private $isShippable;
  25. /**
  26. * SourceSelectionResult constructor.
  27. *
  28. * @param \Magento\Framework\Model\Context $context
  29. * @param \Magento\Framework\Registry $registry
  30. * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory
  31. * @param \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory
  32. * @param array $sourceItemSelections
  33. * @param bool $isShippable
  34. * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource
  35. * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection
  36. * @param array $data
  37. * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  38. */
  39. public function __construct(
  40. \Magento\Framework\Model\Context $context,
  41. \Magento\Framework\Registry $registry,
  42. \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory,
  43. \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory,
  44. array $sourceItemSelections,
  45. bool $isShippable,
  46. \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
  47. \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
  48. array $data = []
  49. ) {
  50. parent::__construct(
  51. $context,
  52. $registry,
  53. $extensionFactory,
  54. $customAttributeFactory,
  55. $resource,
  56. $resourceCollection,
  57. $data
  58. );
  59. $this->sourceItemSelections = $sourceItemSelections;
  60. $this->isShippable = $isShippable;
  61. }
  62. /**
  63. * @inheritdoc
  64. */
  65. public function getSourceSelectionItems(): array
  66. {
  67. return $this->sourceItemSelections;
  68. }
  69. /**
  70. * @inheritdoc
  71. */
  72. public function isShippable(): bool
  73. {
  74. return $this->isShippable;
  75. }
  76. /**
  77. * @inheritdoc
  78. */
  79. public function getExtensionAttributes(): ?SourceSelectionResultExtensionInterface
  80. {
  81. $extensionAttributes = $this->_getExtensionAttributes();
  82. if (null === $extensionAttributes) {
  83. $extensionAttributes = $this->extensionAttributesFactory->create(
  84. SourceSelectionResultInterface::class
  85. );
  86. $this->setExtensionAttributes($extensionAttributes);
  87. }
  88. return $extensionAttributes;
  89. }
  90. /**
  91. * @inheritdoc
  92. */
  93. public function setExtensionAttributes(SourceSelectionResultExtensionInterface $extensionAttributes): void
  94. {
  95. $this->_setExtensionAttributes($extensionAttributes);
  96. }
  97. }