/**
* @param array $filter
* @param BaseOperator|null $operator
* @return BaseOperator
*/
protected function getOperatorForArray(array $filter, BaseOperator $operator = null)
{
$filter = !empty($filter) ? $this->filterBuilder->bAnd(...$this->parseFilterToOperators($filter)) : null;
if (!$filter && !$operator) {
throw new InvalidArgumentException(sprintf('Type "%s" for schema "%s" needs to have one of the following defined: objectClass, objectCategory, or filter.', $this->schema->getObjectType(), $this->schema->getSchemaName()));
} elseif ($filter && $operator) {
$operator = $this->filterBuilder->bAnd($operator, $filter);
} else {
$operator = $operator ?: $filter;
}
return $operator;
}