/**
* @param bool $create
*
* @return FileVersionMeta
*/
private function getMeta($create = false)
{
$locale = $this->locale;
$metaCollection = $this->getFileVersion()->getMeta();
// get meta only with this locale
$metaCollectionFiltered = $metaCollection->filter(function ($meta) use($locale) {
/** @var FileVersionMeta $meta */
if ($meta->getLocale() == $locale) {
return true;
}
return false;
});
// check if meta was found
if ($metaCollectionFiltered->isEmpty()) {
if ($create) {
// create when not found
$meta = new FileVersionMeta();
$meta->setLocale($this->locale);
$meta->setFileVersion($this->getFileVersion());
$this->getFileVersion()->addMeta($meta);
return $meta;
}
// return first when create false
return $this->getFileVersion()->getDefaultMeta();
}
// return exists
return $metaCollectionFiltered->first();
}