if (!\
array_key_exists('value',
$query) ||
$query['value'
] === ''
) { throw DataAbstractionLayerException::
invalidFilterQuery('Parameter "value" for equals filter is missing.',
$path . '/value'
);
} if (!\
is_scalar($query['value'
]) &&
$query['value'
] !== null
) { throw DataAbstractionLayerException::
invalidFilterQuery('Parameter "value" for equals filter must be scalar or null.',
$path . '/value'
);
} return new EqualsFilter(self::
buildFieldName($definition,
$query['field'
]),
$query['value'
]);
case 'nand':
return new NandFilter( self::
parseQueries($definition,
$path,
$exception,
$query['queries'
] ??
[]) );
case 'nor':
return new NorFilter( self::
parseQueries($definition,
$path,
$exception,
$query['queries'
] ??
[]) );
case 'not':
return new NotFilter( $query['operator'
] ?? 'AND',
self::
parseQueries($definition,
$path,
$exception,
$query['queries'
] ??
[]) );
case 'and':