public function evaluate(FlowQuery $flowQuery, array $arguments)
{
if (!isset($arguments[0]) || empty($arguments[0])) {
return;
}
if (!is_string($arguments[0])) {
throw new FizzleException('filter operation expects string argument', 1332489625);
}
$filter = $arguments[0];
$parsedFilter = FizzleParser::parseFilterGroup($filter);
$filteredContext = [];
$context = $flowQuery->getContext();
foreach ($context as $element) {
if ($this->matchesFilterGroup($element, $parsedFilter)) {
$filteredContext[] = $element;
}
}
$flowQuery->setContext($filteredContext);
}