test_class.file: db/org.tinygroup.jsqlparser/src/test/java/org/tinygroup/jsqlparser/util/SelectUtilsTest.java
test_class.identifier: SelectUtilsTest
test_case.body: @Test
  	public void testAddJoin() throws JSQLParserException {
  		Select select = (Select)CCJSqlParserUtil.parse("select a from mytable");
  		final EqualsTo equalsTo = new EqualsTo();
  		equalsTo.setLeftExpression(new Column("a"));
  		equalsTo.setRightExpression(new Column("b"));
  		Join addJoin = SelectUtils.addJoin(select, new Table("mytable2"), equalsTo);
  		addJoin.setLeft(true);
  		assertEquals("SELECT a FROM mytable LEFT JOIN mytable2 ON a = b", select.toString());
  	}
test_case.class_method_signature: SelectUtilsTest.testAddJoin()
test_case.full_signature: @Test public void testAddJoin()
test_case.identifier: testAddJoin
test_case.invocations: parse setLeftExpression setRightExpression addJoin setLeft assertEquals toString
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testAddJoin()
focal_class.file: db/org.tinygroup.jsqlparser/src/main/java/org/tinygroup/jsqlparser/util/SelectUtils.java
focal_class.identifier: SelectUtils
focal_class.class_method_signature: SelectUtils.SelectUtils()
focal_class.full_signature: private  SelectUtils()
focal_class.identifier: SelectUtils
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  SelectUtils()
focal_class.class_method_signature: SelectUtils.buildSelectFromTableAndExpressions(Table table, Expression ... expr)
focal_class.full_signature: public static Select buildSelectFromTableAndExpressions(Table table, Expression ... expr)
focal_class.identifier: buildSelectFromTableAndExpressions
focal_class.modifiers: public static
focal_class.parameters: (Table table, Expression ... expr)
focal_class.return: Select
focal_class.signature: Select buildSelectFromTableAndExpressions(Table table, Expression ... expr)
focal_class.class_method_signature: SelectUtils.buildSelectFromTableAndExpressions(Table table, String ... expr)
focal_class.full_signature: public static Select buildSelectFromTableAndExpressions(Table table, String ... expr)
focal_class.identifier: buildSelectFromTableAndExpressions
focal_class.modifiers: public static
focal_class.parameters: (Table table, String ... expr)
focal_class.return: Select
focal_class.signature: Select buildSelectFromTableAndExpressions(Table table, String ... expr)
focal_class.class_method_signature: SelectUtils.buildSelectFromTableAndSelectItems(Table table, SelectItem ... selectItems)
focal_class.full_signature: public static Select buildSelectFromTableAndSelectItems(Table table, SelectItem ... selectItems)
focal_class.identifier: buildSelectFromTableAndSelectItems
focal_class.modifiers: public static
focal_class.parameters: (Table table, SelectItem ... selectItems)
focal_class.return: Select
focal_class.signature: Select buildSelectFromTableAndSelectItems(Table table, SelectItem ... selectItems)
focal_class.class_method_signature: SelectUtils.buildSelectFromTable(Table table)
focal_class.full_signature: public static Select buildSelectFromTable(Table table)
focal_class.identifier: buildSelectFromTable
focal_class.modifiers: public static
focal_class.parameters: (Table table)
focal_class.return: Select
focal_class.signature: Select buildSelectFromTable(Table table)
focal_class.class_method_signature: SelectUtils.addExpression(Select select, final Expression expr)
focal_class.full_signature: public static void addExpression(Select select, final Expression expr)
focal_class.identifier: addExpression
focal_class.modifiers: public static
focal_class.parameters: (Select select, final Expression expr)
focal_class.return: void
focal_class.signature: void addExpression(Select select, final Expression expr)
focal_class.class_method_signature: SelectUtils.addJoin(Select select, final Table table, final Expression onExpression)
focal_class.full_signature: public static Join addJoin(Select select, final Table table, final Expression onExpression)
focal_class.identifier: addJoin
focal_class.modifiers: public static
focal_class.parameters: (Select select, final Table table, final Expression onExpression)
focal_class.return: Join
focal_class.signature: Join addJoin(Select select, final Table table, final Expression onExpression)
focal_method.body: public static Join addJoin(Select select, final Table table, final Expression onExpression) {
  		if (select.getSelectBody() instanceof PlainSelect) {
  			PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
  			List<Join> joins = plainSelect.getJoins();
  			if (joins == null) {
  				joins = new ArrayList<Join>();
  				plainSelect.setJoins(joins);
  			}
  			Join join = new Join();
  			join.setRightItem(table);
  			join.setOnExpression(onExpression);
  			joins.add(join);
  			return join;
  		}
  		throw new UnsupportedOperationException("Not supported yet.");
  	}
focal_method.class_method_signature: SelectUtils.addJoin(Select select, final Table table, final Expression onExpression)
focal_method.full_signature: public static Join addJoin(Select select, final Table table, final Expression onExpression)
focal_method.identifier: addJoin
focal_method.invocations: getSelectBody getSelectBody getJoins setJoins setRightItem setOnExpression add
focal_method.modifiers: public static
focal_method.parameters: (Select select, final Table table, final Expression onExpression)
focal_method.return: Join
focal_method.signature: Join addJoin(Select select, final Table table, final Expression onExpression)