package org.example.join.sql; import org.example.join.model.Table; import org.example.join.model.TableJoin; public class From extends SqlWrapper { private final Sql sql; protected From(Sql sql) { super(sql); this.sql = sql; } public Join innerJoin(Table table) { return join(SqlConstant.INNER_JOIN, table); } public Join leftJoin(Table table) { return join(SqlConstant.LEFT_JOIN, table); } public Join rightJoin(Table table) { return join(SqlConstant.RIGHT_JOIN, table); } private Join join(String joinType, Table table) { TableJoin tableJoin = new TableJoin(joinType, table); sql.queryTableList.add(tableJoin); return new Join(this, tableJoin.getQueryConditionList()); } }