Even if the columns are String, Integer, and Boolean; it's not unreasonable
to accept a Builder that consumes Object, Number, and Comparable.
This commit is contained in:
Ray Greenwell
2010-12-13 19:48:46 +00:00
parent 5e10393463
commit 5455490fcf
2 changed files with 12 additions and 9 deletions
@@ -481,7 +481,7 @@ public class Query<T extends PersistentRecord>
* supplied record builder.
*/
public <R,V1,V2> List<R> select (
Builder2<R,V1,V2> builder, SQLExpression<V1> exp1, SQLExpression<V2> exp2)
Builder2<R,? super V1,? super V2> builder, SQLExpression<V1> exp1, SQLExpression<V2> exp2)
{
Projector<T, R> proj = Projector.create(_pclass, builder, exp1, exp2);
return _ctx.invoke(new FindAllQuery.Projection<T,R>(_ctx, proj, getClauses()));
@@ -492,8 +492,8 @@ public class Query<T extends PersistentRecord>
* supplied record builder.
*/
public <R, V1, V2, V3> List<R> select (
Builder3<R,V1,V2,V3> builder, SQLExpression<V1> exp1, SQLExpression<V2> exp2,
SQLExpression<V3> exp3)
Builder3<R,? super V1,? super V2,? super V3> builder,
SQLExpression<V1> exp1, SQLExpression<V2> exp2, SQLExpression<V3> exp3)
{
Projector<T, R> proj = Projector.create(_pclass, builder, exp1, exp2, exp3);
return _ctx.invoke(new FindAllQuery.Projection<T,R>(_ctx, proj, getClauses()));
@@ -504,7 +504,8 @@ public class Query<T extends PersistentRecord>
* supplied record builder.
*/
public <R, V1, V2, V3, V4> List<R> select (
Builder4<R,V1,V2,V3,V4> builder, SQLExpression<V1> exp1, SQLExpression<V2> exp2,
Builder4<R,? super V1,? super V2,? super V3,? super V4> builder,
SQLExpression<V1> exp1, SQLExpression<V2> exp2,
SQLExpression<V3> exp3, SQLExpression<V4> exp4)
{
Projector<T, R> proj = Projector.create(_pclass, builder, exp1, exp2, exp3, exp4);
@@ -516,7 +517,8 @@ public class Query<T extends PersistentRecord>
* supplied record builder.
*/
public <R, V1, V2, V3, V4, V5> List<R> select (
Builder5<R,V1,V2,V3,V4,V5> builder, SQLExpression<V1> exp1, SQLExpression<V2> exp2,
Builder5<R,? super V1,? super V2,? super V3,? super V4,? super V5> builder,
SQLExpression<V1> exp1, SQLExpression<V2> exp2,
SQLExpression<V3> exp3, SQLExpression<V4> exp4, SQLExpression<V5> exp5)
{
Projector<T, R> proj = Projector.create(_pclass, builder, exp1, exp2, exp3, exp4, exp5);
@@ -46,7 +46,7 @@ public abstract class Projector<T extends PersistentRecord,R>
}
public static <T extends PersistentRecord, R, V1, V2> Projector<T,R> create (
Class<T> ptype, final Builder2<R, V1, V2> builder,
Class<T> ptype, final Builder2<R, ? super V1, ? super V2> builder,
SQLExpression<V1> col1, SQLExpression<V2> col2)
{
return new Projector<T, R>(ptype, new SQLExpression<?>[] { col1, col2 }) {
@@ -59,7 +59,7 @@ public abstract class Projector<T extends PersistentRecord,R>
}
public static <T extends PersistentRecord, R, V1, V2, V3> Projector<T,R> create (
Class<T> ptype, final Builder3<R, V1, V2, V3> builder,
Class<T> ptype, final Builder3<R, ? super V1, ? super V2, ? super V3> builder,
SQLExpression<V1> col1, SQLExpression<V2> col2, SQLExpression<V3> col3)
{
return new Projector<T, R>(
@@ -74,7 +74,7 @@ public abstract class Projector<T extends PersistentRecord,R>
}
public static <T extends PersistentRecord, R, V1, V2, V3, V4> Projector<T,R> create (
Class<T> ptype, final Builder4<R, V1, V2, V3, V4> builder,
Class<T> ptype, final Builder4<R, ? super V1, ? super V2, ? super V3, ? super V4> builder,
SQLExpression<V1> col1, SQLExpression<V2> col2, SQLExpression<V3> col3,
SQLExpression<V4> col4)
{
@@ -90,7 +90,8 @@ public abstract class Projector<T extends PersistentRecord,R>
}
public static <T extends PersistentRecord, R, V1, V2, V3, V4, V5> Projector<T,R> create (
Class<T> ptype, final Builder5<R, V1, V2, V3, V4, V5> builder,
Class<T> ptype,
final Builder5<R, ? super V1, ? super V2, ? super V3, ? super V4, ? super V5> builder,
SQLExpression<V1> col1, SQLExpression<V2> col2, SQLExpression<V3> col3,
SQLExpression<V4> col4, SQLExpression<V5> col5)
{