/** * Create Form Element * * @param \Magento\Customer\Api\Data\AttributeMetadataInterface $attribute * @param string|int|bool $value * @param string $entityTypeCode * @param bool $isAjax * @return \Magento\Customer\Model\Metadata\Form\AbstractData */ public function create(\Magento\Customer\Api\Data\AttributeMetadataInterface $attribute, $value, $entityTypeCode, $isAjax = false) { $dataModelClass = $attribute->getDataModel(); $params = ['entityTypeCode' => $entityTypeCode, 'value' => is_null($value) ? false : $value, 'isAjax' => $isAjax, 'attribute' => $attribute]; /** TODO fix when Validation is implemented MAGETWO-17341 */ if ($dataModelClass == 'Magento\\Customer\\Model\\Attribute\\Data\\Postcode') { $dataModelClass = 'Magento\\Customer\\Model\\Metadata\\Form\\Postcode'; } if (!empty($dataModelClass)) { $dataModel = $this->_objectManager->create($dataModelClass, $params); } else { $dataModelClass = sprintf('Magento\\Customer\\Model\\Metadata\\Form\\%s', $this->_string->upperCaseWords($attribute->getFrontendInput())); $dataModel = $this->_objectManager->create($dataModelClass, $params); } return $dataModel; }