LeanMapper\Result::applyFiltering PHP Method

applyFiltering() private method

private applyFiltering ( Fluent $statement, Filtering $filtering ) : FilteringResult | null
$statement Fluent
$filtering Filtering
return FilteringResult | null
    private function applyFiltering(Fluent $statement, Filtering $filtering)
    {
        $targetedArgs = $filtering->getTargetedArgs();
        foreach ($filtering->getFilters() as $filter) {
            $baseArgs = [];
            if (!$filter instanceof Closure) {
                foreach (str_split($this->connection->getWiringSchema($filter)) as $autowiredArg) {
                    if ($autowiredArg === 'e') {
                        $baseArgs[] = $filtering->getEntity();
                    } elseif ($autowiredArg === 'p') {
                        $baseArgs[] = $filtering->getProperty();
                    }
                }
                if (isset($targetedArgs[$filter])) {
                    $baseArgs = array_merge($baseArgs, $targetedArgs[$filter]);
                }
            }
            $result = call_user_func_array([$statement, 'applyFilter'], array_merge([$filter], $baseArgs, $filtering->getArgs()));
            if ($result instanceof FilteringResult) {
                return new FilteringResultDecorator($result, $baseArgs);
            }
        }
    }