/**
  * @param string $assetHandle
  * @param array $assetSourceDefinition
  * @return AssetSourceModel
  */
 private function populateAssetSource($assetHandle, array $assetSourceDefinition)
 {
     $assetSource = $sourceRecord = AssetSourceRecord::model()->findByAttributes(['handle' => $assetHandle]);
     $assetSource = $assetSource ? AssetSourceModel::populateModel($assetSource) : new AssetSourceModel();
     $assetSource->setAttributes(array('handle' => $assetHandle, 'type' => $assetSourceDefinition['type'], 'name' => $assetSourceDefinition['name'], 'sortOrder' => $assetSourceDefinition['sortOrder'], 'settings' => $assetSourceDefinition['settings']));
     return $assetSource;
 }
 /**
  * Gets a source's record.
  *
  * @access private
  * @param int $sourceId
  * @return AssetSourceRecord
  */
 private function _getSourceRecordById($sourceId = null)
 {
     if ($sourceId) {
         $sourceRecord = AssetSourceRecord::model()->findById($sourceId);
         if (!$sourceRecord) {
             $this->_noSourceExists($sourceId);
         }
     } else {
         $sourceRecord = new AssetSourceRecord();
     }
     return $sourceRecord;
 }
 /**
  * Gets a source's record.
  *
  * @param int $sourceId
  *
  * @throws Exception
  * @return AssetSourceRecord
  */
 private function _getSourceRecordById($sourceId = null)
 {
     if ($sourceId) {
         $sourceRecord = AssetSourceRecord::model()->findById($sourceId);
         if (!$sourceRecord) {
             throw new Exception(Craft::t('No source exists with the ID “{id}”.', array('id' => $sourceId)));
         }
     } else {
         $sourceRecord = new AssetSourceRecord();
     }
     return $sourceRecord;
 }