/**
* Extracts a Tag object from $row.
*
* @param array $rows
*
* @return \Netgen\TagsBundle\SPI\Persistence\Tags\Tag[]
*/
public function extractTagListFromRows(array $rows)
{
$tagList = array();
foreach ($rows as $row) {
$tagId = (int) $row['eztags_id'];
if (!isset($tagList[$tagId])) {
$tag = new Tag();
$tag->id = (int) $row['eztags_id'];
$tag->parentTagId = (int) $row['eztags_parent_id'];
$tag->mainTagId = (int) $row['eztags_main_tag_id'];
$tag->keywords = array();
$tag->depth = (int) $row['eztags_depth'];
$tag->pathString = $row['eztags_path_string'];
$tag->modificationDate = (int) $row['eztags_modified'];
$tag->remoteId = $row['eztags_remote_id'];
$tag->alwaysAvailable = (int) $row['eztags_language_mask'] & 1 ? true : false;
$tag->mainLanguageCode = $this->languageHandler->load($row['eztags_main_language_id'])->languageCode;
$tag->languageIds = $this->languageMaskGenerator->extractLanguageIdsFromMask((int) $row['eztags_language_mask']);
$tagList[$tagId] = $tag;
}
if (!isset($tagList[$tagId]->keywords[$row['eztags_keyword_locale']])) {
$tagList[$tagId]->keywords[$row['eztags_keyword_locale']] = $row['eztags_keyword_keyword'];
}
}
return array_values($tagList);
}