/** * @param CalculatedNumberAttributeForm $attributeForm * @throws NotSupportedException */ public function setAttributeMetadataFromForm(AttributeForm $attributeForm) { assert('$attributeForm instanceof CalculatedNumberAttributeForm'); $modelClassName = get_class($this->model); $attributeName = $attributeForm->attributeName; $attributeLabels = $attributeForm->attributeLabels; $elementType = $attributeForm->getAttributeTypeName(); $formula = $attributeForm->formula; $id = $attributeForm->id; if ($id != null) { $metadata = CalculatedDerivedAttributeMetadata::getById($id); $metadata->setScenario('nonAutoBuild'); } else { $metadata = new CalculatedDerivedAttributeMetadata(); $metadata->setScenario('nonAutoBuild'); } $metadata->name = $attributeName; $metadata->modelClassName = $modelClassName; $metadata->serializedMetadata = serialize(array('formula' => $formula, 'attributeLabels' => $attributeLabels)); $saved = $metadata->save(); if (!$saved) { throw new NotSupportedException(); } }