/**
  * Return attribute data model by attribute
  * Set entity to data model (need for work)
  *
  * @param \Magento\Eav\Model\Attribute $attribute
  * @param \Magento\Framework\Model\AbstractModel $entity
  * @return \Magento\Eav\Model\Attribute\Data\AbstractData
  */
 public function create(\Magento\Eav\Model\Attribute $attribute, \Magento\Framework\Model\AbstractModel $entity)
 {
     /* @var $dataModel \Magento\Eav\Model\Attribute\Data\AbstractData */
     $dataModelClass = $attribute->getDataModel();
     if (!empty($dataModelClass)) {
         if (empty($this->_dataModels[$dataModelClass])) {
             $dataModel = $this->_objectManager->create($dataModelClass);
             $this->_dataModels[$dataModelClass] = $dataModel;
         } else {
             $dataModel = $this->_dataModels[$dataModelClass];
         }
     } else {
         if (empty($this->_dataModels[$attribute->getFrontendInput()])) {
             $dataModelClass = sprintf('Magento\\Eav\\Model\\Attribute\\Data\\%s', $this->string->upperCaseWords($attribute->getFrontendInput()));
             $dataModel = $this->_objectManager->create($dataModelClass);
             $this->_dataModels[$attribute->getFrontendInput()] = $dataModel;
         } else {
             $dataModel = $this->_dataModels[$attribute->getFrontendInput()];
         }
     }
     $dataModel->setAttribute($attribute);
     $dataModel->setEntity($entity);
     return $dataModel;
 }