if (empty($query['field'
])) { throw DataAbstractionLayerException::
invalidFilterQuery('Parameter "field" for suffix filter is missing.',
$path . '/field'
);
} if (!
isset($query['value'
]) ||
$query['value'
] === ''
) { throw DataAbstractionLayerException::
invalidFilterQuery('Parameter "value" for suffix filter is missing.',
$path . '/value'
);
} return new SuffixFilter(self::
buildFieldName($definition,
$query['field'
]),
$query['value'
]);
case 'range':
return new RangeFilter(self::
buildFieldName($definition,
$query['field'
]),
$query['parameters'
]);
case 'until':
case 'since':
return self::
getFilterByRelativeTime(self::
buildFieldName($definition,
$query['field'
]),
$query,
$path);
case 'equalsAll':
if (empty($query['field'
])) { throw DataAbstractionLayerException::
invalidFilterQuery('Parameter "field" for equalsAny filter is missing.',
$path . '/field'
);
} if (empty($query['value'
])) { throw DataAbstractionLayerException::
invalidFilterQuery('Parameter "value" for equalsAll filter is missing.',
$path . '/value'
);
}