/**
  * @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();
     }
 }