mirror of
https://github.com/querydsl/querydsl.git
synced 2026-07-03 21:07:49 +08:00
Add Comparable support
This commit is contained in:
parent
3812288e86
commit
9037b0952b
@ -13,18 +13,17 @@
|
||||
*/
|
||||
package com.mysema.query.types.expr;
|
||||
|
||||
import java.sql.Time;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.mysema.query.types.ConstantImpl;
|
||||
import com.mysema.query.types.Expression;
|
||||
import com.mysema.query.types.NullExpression;
|
||||
import com.mysema.query.types.Ops;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.sql.Time;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* CaseBuilder enables the construction of typesafe case-when-then-else
|
||||
* constructs :
|
||||
@ -200,6 +199,26 @@ public final class CaseBuilder {
|
||||
return thenBoolean(ConstantImpl.create(b));
|
||||
}
|
||||
|
||||
// Comparable
|
||||
|
||||
public <T extends Comparable> Cases<T, ComparableExpression<T>> then(ComparableExpression<T> expr) {
|
||||
return thenComparable(expr);
|
||||
}
|
||||
|
||||
public <T extends Comparable> Cases<T, ComparableExpression<T>> thenComparable(Expression<T> expr) {
|
||||
return new Cases<T, ComparableExpression<T>>((Class)expr.getType()) {
|
||||
@Override
|
||||
protected ComparableExpression<T> createResult(Class<T> type, Expression<T> last) {
|
||||
return ComparableOperation.create(type, Ops.CASE, last);
|
||||
}
|
||||
|
||||
}.addCase(when, expr);
|
||||
}
|
||||
|
||||
public <A extends Comparable> Cases<A, ComparableExpression<A>> then(A arg) {
|
||||
return thenComparable(ConstantImpl.create(arg));
|
||||
}
|
||||
|
||||
// Date
|
||||
|
||||
public <T extends Comparable> Cases<T, DateExpression<T>> then(DateExpression<T> expr) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user