public function parse()
 {
     $formConfigParser = new FormConfigParser();
     $dataModel = $this->getDataModelVerify();
     $modelName = $dataModel->getModelName();
     $formConfigParser->setFieldTypesService($this->getFieldTypesServiceVerify());
     $formConfigParser->setQueryService($this->getQueryServiceVerify());
     $formConfigParser->setGatewayService($this->getGatewayServiceVerify());
     $formConfigParser->setConfigService($this->getConfigServiceVerify());
     $formConfigParser->setModelConfig($this->getModelServiceVerify()->getModelConfig($modelName));
     $aclData = null;
     if ($dataModel instanceof AclDataModel) {
         /**
          * @var AclConfig $aclData
          */
         $aclData = $dataModel->getDataPermissions();
         $formConfigParser->setAclConfig($aclData);
         $formConfigParser->setDataModel($dataModel->getDataModel());
     } else {
         $formConfigParser->setDataModel($dataModel);
     }
     $formConfigParser->setLimitFields($this->getLimitFields());
     $formConfigParser->init()->notify();
     return $formConfigParser;
 }