private function populateAssetSource($assetHandle, array $assetSourceDefinition)
{
$assetSource = AssetSourceRecord::model()->findByAttributes(['handle' => $assetHandle]);
$assetSource = $assetSource ? AssetSourceModel::populateModel($assetSource) : new AssetSourceModel();
$defaultAssetSourceSettings = array('publicURLs' => true);
$assetSource->setAttributes(['handle' => $assetHandle, 'type' => $assetSourceDefinition['type'], 'name' => $assetSourceDefinition['name'], 'sortOrder' => $assetSourceDefinition['sortOrder'], 'settings' => array_merge($defaultAssetSourceSettings, $assetSourceDefinition['settings'])]);
if (array_key_exists('fieldLayout', $assetSourceDefinition)) {
$fieldLayout = Craft::app()->schematic_fields->getFieldLayout($assetSourceDefinition['fieldLayout']);
$assetSource->setFieldLayout($fieldLayout);
}
return $assetSource;
}