public function appendJoinOptions(Queries\Common\Join\Options $joinOptions)
{
$this->appendSource($joinOptions->getSource());
if ($joinOptions->isGroupJoin()) {
$this->append(' into groups');
}
if ($joinOptions->hasFilter()) {
$this->append(' filtered according to: ');
$filter = $joinOptions->getFilter();
if ($filter instanceof Queries\Common\Join\Filter\Custom) {
$this->appendFunction($filter->getOnFunction());
} elseif ($filter instanceof Queries\Common\Join\Filter\Equality) {
$this->appendFunction($filter->getOuterKeyFunction());
$this->append(' equaling ');
$this->appendFunction($filter->getInnerKeyFunction());
}
}
if ($joinOptions->hasDefault()) {
$this->append(' with default values');
}
}