/**
* Data can be set over by array.
*
* @param Collection $collection
* @param array $data
*
* @return Collection
*/
protected function setDataToCollection(Collection $collection, $data)
{
// set parent
if (!empty($data['parent'])) {
$collectionEntity = $this->collectionRepository->findCollectionById($data['parent']);
$collection->setParent($this->getApiEntity($collectionEntity, $data['locale']));
// set parent
} else {
$collection->setParent(null);
// is collection in root
}
// set other data
foreach ($data as $attribute => $value) {
if ($value) {
switch ($attribute) {
case 'title':
$collection->setTitle($value);
break;
case 'description':
$collection->setDescription($value);
break;
case 'style':
$collection->setStyle($value);
break;
case 'type':
if (!isset($value['id'])) {
break;
}
$type = $this->getTypeById($value['id']);
$collection->setType($type);
break;
case 'changer':
$collection->setChanger($value);
break;
case 'creator':
$collection->setCreator($value);
break;
case 'properties':
$collection->setProperties($value);
break;
}
}
}
return $collection;
}