SourceSelectionAlgorithm.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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;
  8. use Magento\InventorySourceSelectionApi\Api\Data\SourceSelectionAlgorithmInterface;
  9. use Magento\InventorySourceSelectionApi\Api\Data\SourceSelectionAlgorithmExtensionInterface;
  10. use Magento\Framework\Model\AbstractExtensibleModel;
  11. /**
  12. * @inheritdoc
  13. */
  14. class SourceSelectionAlgorithm extends AbstractExtensibleModel implements SourceSelectionAlgorithmInterface
  15. {
  16. /**
  17. * @var string
  18. */
  19. private $code;
  20. /**
  21. * @var string
  22. */
  23. private $title;
  24. /**
  25. * @var string
  26. */
  27. private $description;
  28. /**
  29. * SourceSelectionAlgorithm constructor.
  30. *
  31. * @param \Magento\Framework\Model\Context $context
  32. * @param \Magento\Framework\Registry $registry
  33. * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory
  34. * @param \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory
  35. * @param string $code
  36. * @param string $title
  37. * @param string $description
  38. * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource
  39. * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection
  40. * @param array $data
  41. * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  42. */
  43. public function __construct(
  44. \Magento\Framework\Model\Context $context,
  45. \Magento\Framework\Registry $registry,
  46. \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory,
  47. \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory,
  48. string $code,
  49. string $title,
  50. string $description,
  51. \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
  52. \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
  53. array $data = []
  54. ) {
  55. parent::__construct(
  56. $context,
  57. $registry,
  58. $extensionFactory,
  59. $customAttributeFactory,
  60. $resource,
  61. $resourceCollection,
  62. $data
  63. );
  64. $this->code = $code;
  65. $this->title = $title;
  66. $this->description = $description;
  67. }
  68. /**
  69. * @inheritdoc
  70. */
  71. public function getCode(): string
  72. {
  73. return $this->code;
  74. }
  75. /**
  76. * @inheritdoc
  77. */
  78. public function getTitle(): string
  79. {
  80. return $this->title;
  81. }
  82. /**
  83. * @inheritdoc
  84. */
  85. public function getDescription(): string
  86. {
  87. return $this->description;
  88. }
  89. /**
  90. * @inheritdoc
  91. */
  92. public function getExtensionAttributes(): ?SourceSelectionAlgorithmExtensionInterface
  93. {
  94. $extensionAttributes = $this->_getExtensionAttributes();
  95. if (null === $extensionAttributes) {
  96. $extensionAttributes = $this->extensionAttributesFactory->create(
  97. SourceSelectionAlgorithmInterface::class
  98. );
  99. $this->setExtensionAttributes($extensionAttributes);
  100. }
  101. return $extensionAttributes;
  102. }
  103. /**
  104. * @inheritdoc
  105. */
  106. public function setExtensionAttributes(SourceSelectionAlgorithmExtensionInterface $extensionAttributes): void
  107. {
  108. $this->_setExtensionAttributes($extensionAttributes);
  109. }
  110. }