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; } }