protected function init()
 {
     parent::init();
     $this->resolveMappingRuleDataType();
     $modelClassName = $this->modelClassName;
     $model = new $modelClassName(false);
     $this->attributeModelClassName = $this->resolveAttributeModelClassName($model, $this->attributeName);
     $this->ensureTypeValueIsValid($this->mappingRuleData["type"]);
     if ($this->mappingRuleData["type"] == IdValueTypeMappingRuleForm::EXTERNAL_SYSTEM_ID) {
         $modelClassName = $this->attributeModelClassName;
         ExternalSystemIdUtil::addExternalIdColumnIfMissing($modelClassName::getTableName(), $this->externalSystemIdMaxLength);
     }
 }
 protected function init()
 {
     parent::init();
     $modelClassName = $this->modelClassName;
     $model = new $modelClassName(false);
     $this->attributeModelClassName = $this->resolveAttributeModelClassName($model, $this->attributeName);
     $attributeModelClassName = $this->attributeModelClassName;
     $model = new $attributeModelClassName(false);
     if ($this->mappingRuleData["type"] == RelatedModelValueTypeMappingRuleForm::ZURMO_MODEL_NAME && !$model->isAttribute("name")) {
         throw new NotSupportedException();
     }
     $this->maxNameLength = StringValidatorHelper::getMaxLengthByModelAndAttributeName($model, 'name');
 }
 protected function init()
 {
     parent::init();
     $modelClassName = $this->modelClassName;
     $model = new $modelClassName(false);
     $this->attributeModelClassName = $this->resolveAttributeModelClassName($model, $this->attributeName);
     $this->ensureTypeValueIsValid($this->mappingRuleData["type"]);
     if ($this->mappingRuleData["type"] == IdValueTypeMappingRuleForm::EXTERNAL_SYSTEM_ID) {
         $modelClassName = $this->attributeModelClassName;
         $tableColumnName = ExternalSystemIdUtil::EXTERNAL_SYSTEM_ID_COLUMN_NAME;
         RedBeanColumnTypeOptimizer::externalIdColumn($modelClassName::getTableName($modelClassName), $tableColumnName, $this->externalSystemIdMaxLength);
     }
 }