public function parse( Filter
$query,
EntityDefinition
$definition,
Context
$context,
?string
$root = null,
bool
$negated = false
): ParseResult
{ if ($root === null
) { $root =
$definition->
getEntityName();
} if ($query instanceof SingleFieldFilter &&
$query->
getResolved()) { $result =
new ParseResult();
$result->
addWhere((string) $query->
getResolved());
return $result;
} return match (true
) { $query instanceof EqualsFilter =>
$this->
parseEqualsFilter($query,
$definition,
$root,
$context,
$negated),
$query instanceof EqualsAnyFilter =>
$this->
parseEqualsAnyFilter($query,
$definition,
$root,
$context),
$query instanceof ContainsFilter =>
$this->
parseContainsFilter($query,
$definition,
$root,
$context),
$query instanceof PrefixFilter =>
$this->
parsePrefixFilter($query,
$definition,
$root,
$context),