1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Api;
- /**
- * Base Builder Class for simple data Objects
- * @SuppressWarnings(PHPMD.NumberOfChildren)
- */
- abstract class AbstractSimpleObjectBuilder implements SimpleBuilderInterface
- {
- /**
- * @var array
- */
- protected $data;
- /**
- * @var ObjectFactory
- */
- protected $objectFactory;
- /**
- * @param ObjectFactory $objectFactory
- */
- public function __construct(ObjectFactory $objectFactory)
- {
- $this->data = [];
- $this->objectFactory = $objectFactory;
- }
- /**
- * Builds the Data Object
- *
- * @return AbstractSimpleObject
- */
- public function create()
- {
- $dataObjectType = $this->_getDataObjectType();
- $dataObject = $this->objectFactory->create($dataObjectType, ['data' => $this->data]);
- $this->data = [];
- return $dataObject;
- }
- /**
- * @param string $key
- * @param mixed $value
- *
- * @return $this
- */
- protected function _set($key, $value)
- {
- $this->data[$key] = $value;
- return $this;
- }
- /**
- * Return the Data type class name
- *
- * @return string
- */
- protected function _getDataObjectType()
- {
- $currentClass = get_class($this);
- $builderSuffix = 'Builder';
- $dataObjectType = substr($currentClass, 0, -strlen($builderSuffix));
- return $dataObjectType;
- }
- /**
- * Return data Object data.
- *
- * @return array
- */
- public function getData()
- {
- return $this->data;
- }
- }
|