/**
  * Gets a field record by its ID or creates a new one.
  *
  * @access private
  * @param int $fieldId
  * @return FieldRecord
  */
 private function _getFieldRecordById($fieldId = null)
 {
     if ($fieldId) {
         $fieldRecord = FieldRecord::model()->findById($fieldId);
         if (!$fieldRecord) {
             throw new Exception(Craft::t('No field exists with the ID “{id}”', array('id' => $fieldId)));
         }
     } else {
         $fieldRecord = new FieldRecord();
     }
     return $fieldRecord;
 }
 /**
  * Returns a field record for a given model.
  *
  * @param FieldModel $field
  *
  * @throws Exception
  * @return FieldRecord
  */
 private function _getFieldRecord(FieldModel $field)
 {
     if (!$field->isNew()) {
         $fieldId = $field->id;
         if (!isset($this->_fieldRecordsById) || !array_key_exists($fieldId, $this->_fieldRecordsById)) {
             $this->_fieldRecordsById[$fieldId] = FieldRecord::model()->findById($fieldId);
             if (!$this->_fieldRecordsById[$fieldId]) {
                 throw new Exception(Craft::t('No field exists with the ID “{id}”.', array('id' => $fieldId)));
             }
         }
         return $this->_fieldRecordsById[$fieldId];
     } else {
         return new FieldRecord();
     }
 }