public static function create(\ModelCriteria $q, $relation, $relationAlias = null, $joinType = \Criteria::INNER_JOIN)
 {
     $tableMap = $q->getTableMap();
     $relationMap = $tableMap->getRelation($relation);
     // create a Join object for this join
     $join = new static();
     $join->setJoinType($joinType);
     $join->setRelationMap($relationMap, $q->getModelAlias(), $relationAlias);
     if ($previousJoin = $q->getPreviousJoin()) {
         $join->setPreviousJoin($previousJoin);
     }
     // add the ModelJoin to the current object
     if ($relationAlias) {
         $q->addAlias($relationAlias, $relationMap->getRightTable()->getName());
         $q->addJoinObject($join, $relationAlias);
     } else {
         $q->addJoinObject($join, $relationMap->getRightTable()->getName());
     }
     return $join;
 }