/**
  * @param string $modelClassName
  * @param string $modelAttributeName
  */
 public function __construct($modelClassName, $modelAttributeName)
 {
     parent::__construct($modelClassName, $modelAttributeName);
     assert('is_subclass_of($modelClassName, "Item") || $modelClassName == "Item"');
     assert('$modelClassName::isRelation($modelAttributeName)');
     $relationModelClassName = $modelClassName::getRelationModelClassName($modelAttributeName);
     $defaultModuleClassName = $relationModelClassName::getModuleClassName();
     $this->moduleIdOfDefaultModel = $defaultModuleClassName::getDirectoryName();
 }
 /**
  * Override to add an extra rule for the defaultModelStringifiedName. This will ensure if there is an error
  * the message shows up properly in the user interface, since otherwise with the rule being on the
  * defaultModelId, it would not show up because it is a hidden input.
  * @see DefaultModelAttributeMappingRuleForm::rules()
  */
 public function rules()
 {
     if ($this->getScenario() == 'extraColumn') {
         $requiredRuleIsApplicable = true;
     } else {
         $requiredRuleIsApplicable = false;
     }
     $defaultValueApplicableModelAttributeRules = ModelAttributeRulesToDefaultValueMappingRuleUtil::getApplicableRulesByModelClassNameAndAttributeName($this->modelClassName, $this->modelAttributeName, 'defaultModelStringifiedName', $requiredRuleIsApplicable);
     return array_merge(parent::rules(), $defaultValueApplicableModelAttributeRules);
     return array_merge(parent::rules(), $defaultValueApplicableModelAttributeRules);
 }
 public function __construct($modelClassName, $modelAttributeName)
 {
     parent::__construct($modelClassName, $modelAttributeName);
     $this->data = CustomFieldDataModelUtil::getDataByModelClassNameAndAttributeName($modelClassName, $modelAttributeName);
 }