Pinq\Providers\DSL\Compilation\Processors\Expression\ScopeProcessor::updateJoinOptions PHP Method

updateJoinOptions() public method

public updateJoinOptions ( Options $options )
$options Pinq\Queries\Common\Join\Options
    public function updateJoinOptions(Queries\Common\Join\Options $options)
    {
        $filter = $options->getFilter();
        if ($filter instanceof Queries\Common\Join\Filter\Custom) {
            $filter = $filter->update($this->expressionProcessor->processFunction($filter->getOnFunction()));
        } elseif ($filter instanceof Queries\Common\Join\Filter\Equality) {
            $filter = $filter->update($this->expressionProcessor->processFunction($filter->getOuterKeyFunction()), $this->expressionProcessor->processFunction($filter->getInnerKeyFunction()));
        }
        return $options->update($options->getSource(), $options->isGroupJoin(), $filter, $options->hasDefault());
    }

Usage Example

 public function visitJoinApply(Operations\JoinApply $operation)
 {
     return parent::visitJoinApply($operation->update($this->scopeProcessor->updateJoinOptions($operation->getOptions()), $this->expressionProcessor->processFunction($operation->getMutatorFunction())));
 }