PublisherConfigItem.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\MessageQueue\Publisher\Config;
  7. /**
  8. * {@inheritdoc}
  9. */
  10. class PublisherConfigItem implements PublisherConfigItemInterface
  11. {
  12. /**
  13. * Publisher topic name.
  14. *
  15. * @var string
  16. */
  17. private $topic;
  18. /**
  19. * Publisher connection.
  20. *
  21. * @var PublisherConnectionInterface
  22. */
  23. private $connection;
  24. /**
  25. * Flag. Is publisher disabled.
  26. *
  27. * @var bool
  28. */
  29. private $isDisabled;
  30. /**
  31. * Initialize dependencies.
  32. *
  33. * @param PublisherConnectionFactory $connectionFactory
  34. */
  35. public function __construct(PublisherConnectionFactory $connectionFactory)
  36. {
  37. $this->connection = $connectionFactory->create();
  38. }
  39. /**
  40. * {@inheritdoc}
  41. */
  42. public function getTopic()
  43. {
  44. return $this->topic;
  45. }
  46. /**
  47. * {@inheritdoc}
  48. */
  49. public function isDisabled()
  50. {
  51. return $this->isDisabled;
  52. }
  53. /**
  54. * {@inheritdoc}
  55. */
  56. public function getConnection()
  57. {
  58. return $this->connection;
  59. }
  60. /**
  61. * Set publisher config item data.
  62. *
  63. * @param array $data
  64. * @return void
  65. */
  66. public function setData(array $data)
  67. {
  68. $this->topic = $data['topic'];
  69. $this->isDisabled = $data['disabled'];
  70. $this->connection->setData($data['connection']);
  71. }
  72. }