protected function translateJoin(JoinClause $join, Schema &$schema) {
		$expr = $join->getJoinType() . ' ';
		
		//build condition expression
		$condition = $join->getCondition();
		if ($condition instanceof SQLPredicate)
			$condition = $condition->evaluate($this->driver, $schema);
		elseif (!is_string($condition))
			throw new \InvalidArgumentException("Conditions must be specified either by a SQLPredicate instance or a non-empty string");

		//build join expression
		if ($join->getAlias())
			$expr .= '@@' . $join->getTable() . ' ' . $join->getAlias() . ' ON ' . $condition . ' ';
		else
			$expr .= '@@' . $join->getTable() .  ' ON ' . $condition . ' ';
	
		return $expr;
	}