protected function getLdapFilter($alias)
{
$filters = [];
if (!is_null($alias) && !array_key_exists($alias, $this->aliases)) {
throw new InvalidArgumentException(sprintf('Alias "%s" is not valid. Valid aliases are: %s', $alias, empty($this->aliases) ? '(none defined)' : implode(', ', array_keys($this->aliases))));
}
if (!is_null($alias)) {
$filters[] = $this->aliases[$alias]->getFilter()->toLdapFilter();
}
foreach ($this->toArray() as $operator) {
$filters[] = $operator->toLdapFilter($alias);
}
$filter = implode('', $filters);
if (1 < count($filters)) {
$filter = bAnd::SEPARATOR_START . bAnd::SYMBOL . $filter . bAnd::SEPARATOR_END;
}
return $filter;
}