AbstractColumn implements Segment { public ColumnExpression in(List<?> values) { return InExpression.in(this, values); } AbstractColumn(String name, JDBCType type); abstract String getTableName(BuilderContext helper); String getColumnName(); JDBCType getType(); @Override String build(BuilderContext helper); String getReference(BuilderContext helper); @Override String toString(); ColumnOrder asc(); ColumnOrder desc(); Parameter of(Object value); Parameter of(List<?> values); ParameterDefinition var(); ParameterDefinition inVar(); ColumnExpression equal(Object value); ColumnExpression notEqual(Object value); ColumnExpression greaterThan(Object value); ColumnExpression greaterThanOrEqual(Object value); ColumnExpression lessThan(Object value); ColumnExpression lessThanOrEqual(Object value); ColumnExpression eq(Object value); ColumnExpression neq(Object value); ColumnExpression gt(Object value); ColumnExpression gteq(Object value); ColumnExpression lt(Object value); ColumnExpression lteq(Object value); ColumnExpression between(Object firstValue, Object secondValue); ColumnExpression notBetween(Object firstValue, Object secondValue); ColumnExpression in(List<?> values); ColumnExpression in(T... values); ColumnExpression in(ParameterDefinition def); ColumnExpression in(ParameterDefinition.Builder builder); ColumnExpression in(Parameter inParameter); ColumnExpression notIn(List<?> values); ColumnExpression notIn(ParameterDefinition def); ColumnExpression notIn(ParameterDefinition.Builder builder); ColumnExpression notIn(Parameter inParameter); ColumnExpression like(Object value); ColumnExpression notLike(Object value); ColumnExpression isNull(); ColumnExpression isNotNull(); static final String PERIOD; static final String AS; }
@Test public void testIn() { AbstractColumn c = column(); assertEquals(getReferName() + " IN ( ? )", c.in(values).build(bc)); assertParam(c.in(values)); assertParam(c.in(Parameter.inParameter(getColumnName(), type, values))); assertFail(c.in(nullValues)); assertExp(c.in(var("var")), "var", type); assertExp(c.in(inVar("var", type)), "var", type); try { c.in(inVar("var", type2)); fail(); }catch (Exception e) {} assertExp(c.in(VAR), "VAR", type); }