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()); }