public function visitFilter(Criterion $criterion, Dispatcher $dispatcher, array $languageFilter)
{
switch ($criterion->target) {
case Criterion\UserMetadata::MODIFIER:
$fieldName = 'creator_id';
break;
case Criterion\UserMetadata::OWNER:
$fieldName = 'owner_id';
break;
case Criterion\UserMetadata::GROUP:
$fieldName = 'owner_user_group_mid';
break;
default:
throw new NotImplementedException('No visitor available for: ' . get_class($criterion) . " with target '{$criterion->target}'");
}
if (count($criterion->value) > 1) {
$filter = array('terms' => array($fieldName => $criterion->value));
} else {
$filter = array('term' => array($fieldName => $criterion->value[0]));
}
return $filter;
}