protected function processJoin(Join $join, $context): Join
    {
        $table = $this->processTable($join->table, $context);
        $criteria = [];
        foreach ($join->criteria as $index => $criterion) {
            $criteria[$index] = $this->processCriterion($criterion, $context);
        }

        if ($table === $join->table && $criteria === $join->criteria) {
            return $join;
        } else {
            return new Join($join->type, $table, $join->tableAlias, $criteria);
        }
    }
protected function processJoin(Join $join, $context): Join
    {
        $table = $this->processTable($join->table, $context);
        $criteria = [];
        foreach ($join->criteria as $index => $criterion) {
            $criteria[$index] = $this->processCriterion($criterion, $context);
        }

        if ($table === $join->table && $criteria === $join->criteria) {
            return $join;
        } else {
            return new Join($join->type, $table, $join->tableAlias, $criteria);
        }
    }
protected function processJoin ( Join $ join , $ context ) : Join { $ table = $ this -> processTable ( $ join -> table , $ context ) ; $ criteria = [ ] ; foreach ( $ join -> criteria as $ index => $ criterion ) { $ criteria [ $ index ] = $ this -> processCriterion ( $ criterion , $ context ) ; } if ( $ table === $ join -> table && $ criteria === $ join -> criteria ) { return $ join ; } else { return new Join ( $ join -> type , $ table , $ join -> tableAlias , $ criteria ) ; } }
Processes a single join.

@param Join $join
@param mixed $context The processing context
@return Join
Processes a single join .