mirror of
https://github.com/querydsl/querydsl.git
synced 2026-06-30 21:08:30 +08:00
Merge pull request #2895 from F43nd1r/avoid-varargs-array-creation
Add one-arg overloads for coalesce
This commit is contained in:
commit
8923195795
@ -18,7 +18,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import com.querydsl.core.types.*;
|
||||
|
||||
/**
|
||||
* {@code BooleanExpression} represents {@code java.lang.Boolean} expressions
|
||||
* {@code BooleanExpression} represents {@link java.lang.Boolean} expressions
|
||||
*
|
||||
* @author tiwe
|
||||
* @see java.lang.Boolean
|
||||
@ -177,6 +177,19 @@ public abstract class BooleanExpression extends LiteralExpression<Boolean> imple
|
||||
return nullif(ConstantImpl.create(other));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, expr)} expression
|
||||
*
|
||||
* @param expr additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public BooleanExpression coalesce(Expression<Boolean> expr) {
|
||||
Coalesce<Boolean> coalesce = new Coalesce<Boolean>(getType(), mixin);
|
||||
coalesce.add(expr);
|
||||
return coalesce.asBoolean();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, exprs...)} expression
|
||||
*
|
||||
@ -184,14 +197,28 @@ public abstract class BooleanExpression extends LiteralExpression<Boolean> imple
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public BooleanExpression coalesce(Expression<Boolean>... exprs) {
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
public BooleanExpression coalesce(Expression<?>... exprs) {
|
||||
Coalesce<Boolean> coalesce = new Coalesce<Boolean>(getType(), mixin);
|
||||
for (Expression<Boolean> expr : exprs) {
|
||||
for (Expression expr : exprs) {
|
||||
coalesce.add(expr);
|
||||
}
|
||||
return coalesce.asBoolean();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, arg)} expression
|
||||
*
|
||||
* @param arg additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public BooleanExpression coalesce(Boolean arg) {
|
||||
Coalesce<Boolean> coalesce = new Coalesce<Boolean>(getType(), mixin);
|
||||
coalesce.add(arg);
|
||||
return coalesce.asBoolean();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, args...)} expression
|
||||
*
|
||||
|
||||
@ -39,6 +39,11 @@ public class Coalesce<T extends Comparable> extends MutableExpressionBase<T> {
|
||||
|
||||
private transient volatile ComparableExpression<T> value;
|
||||
|
||||
public Coalesce(Class<? extends T> type, Expression<T> expr) {
|
||||
super(type);
|
||||
add(expr);
|
||||
}
|
||||
|
||||
public Coalesce(Class<? extends T> type, Expression<?>... exprs) {
|
||||
super(type);
|
||||
// NOTE : type parameters for the varargs, would result in compiler warnings
|
||||
|
||||
@ -409,6 +409,19 @@ public abstract class ComparableExpression<T extends Comparable> extends Compara
|
||||
return nullif(ConstantImpl.create(other));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, expr)} expression
|
||||
*
|
||||
* @param expr additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public ComparableExpression<T> coalesce(Expression<T> expr) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(expr);
|
||||
return coalesce.getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, exprs...)} expression
|
||||
*
|
||||
@ -416,14 +429,28 @@ public abstract class ComparableExpression<T extends Comparable> extends Compara
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public ComparableExpression<T> coalesce(Expression<T>... exprs) {
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
public ComparableExpression<T> coalesce(Expression<?>... exprs) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
for (Expression<T> expr : exprs) {
|
||||
for (Expression expr : exprs) {
|
||||
coalesce.add(expr);
|
||||
}
|
||||
return coalesce.getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, arg)} expression
|
||||
*
|
||||
* @param arg additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public ComparableExpression<T> coalesce(T arg) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(arg);
|
||||
return coalesce.getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, args...)} expression
|
||||
*
|
||||
|
||||
@ -52,26 +52,52 @@ public abstract class ComparableExpressionBase<T extends Comparable> extends Sim
|
||||
return asc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, expr)} expression
|
||||
*
|
||||
* @param expr additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
public ComparableExpressionBase<T> coalesce(Expression<T> expr) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(expr);
|
||||
return coalesce.getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, exprs...)} expression
|
||||
*
|
||||
* @param exprs additional arguments
|
||||
* @return coalesce
|
||||
*/
|
||||
public ComparableExpressionBase<T> coalesce(Expression<T>...exprs) {
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
public ComparableExpressionBase<T> coalesce(Expression<?>...exprs) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
for (Expression<T> expr : exprs) {
|
||||
for (Expression expr : exprs) {
|
||||
coalesce.add(expr);
|
||||
}
|
||||
return coalesce.getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, arg)} expression
|
||||
*
|
||||
* @param arg additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
public ComparableExpressionBase<T> coalesce(T arg) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(arg);
|
||||
return coalesce.getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, args...)} expression
|
||||
*
|
||||
* @param args additional arguments
|
||||
* @return coalesce
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public ComparableExpressionBase<T> coalesce(T... args) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
for (T arg : args) {
|
||||
|
||||
@ -228,6 +228,19 @@ public abstract class DateExpression<T extends Comparable> extends TemporalExpre
|
||||
return nullif(ConstantImpl.create(other));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, expr)} expression
|
||||
*
|
||||
* @param expr additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public DateExpression<T> coalesce(Expression<T> expr) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(expr);
|
||||
return coalesce.asDate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, exprs...)} expression
|
||||
*
|
||||
@ -235,14 +248,28 @@ public abstract class DateExpression<T extends Comparable> extends TemporalExpre
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public DateExpression<T> coalesce(Expression<T>... exprs) {
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
public DateExpression<T> coalesce(Expression<?>... exprs) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
for (Expression<T> expr : exprs) {
|
||||
for (Expression expr : exprs) {
|
||||
coalesce.add(expr);
|
||||
}
|
||||
return coalesce.asDate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, arg)} expression
|
||||
*
|
||||
* @param arg additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public DateExpression<T> coalesce(T arg) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(arg);
|
||||
return coalesce.asDate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, args...)} expression
|
||||
*
|
||||
@ -250,6 +277,7 @@ public abstract class DateExpression<T extends Comparable> extends TemporalExpre
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public DateExpression<T> coalesce(T... args) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
for (T arg : args) {
|
||||
|
||||
@ -298,6 +298,19 @@ public abstract class DateTimeExpression<T extends Comparable> extends TemporalE
|
||||
return nullif(ConstantImpl.create(other));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, expr)} expression
|
||||
*
|
||||
* @param expr additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public DateTimeExpression<T> coalesce(Expression<T> expr) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(expr);
|
||||
return coalesce.asDateTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, exprs...)} expression
|
||||
*
|
||||
@ -305,14 +318,28 @@ public abstract class DateTimeExpression<T extends Comparable> extends TemporalE
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public DateTimeExpression<T> coalesce(Expression<T>... exprs) {
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
public DateTimeExpression<T> coalesce(Expression<?>... exprs) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
for (Expression<T> expr : exprs) {
|
||||
for (Expression expr : exprs) {
|
||||
coalesce.add(expr);
|
||||
}
|
||||
return coalesce.asDateTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, arg)} expression
|
||||
*
|
||||
* @param arg additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public DateTimeExpression<T> coalesce(T arg) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(arg);
|
||||
return coalesce.asDateTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, args...)} expression
|
||||
*
|
||||
@ -320,6 +347,7 @@ public abstract class DateTimeExpression<T extends Comparable> extends TemporalE
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public DateTimeExpression<T> coalesce(T... args) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
for (T arg : args) {
|
||||
|
||||
@ -80,6 +80,20 @@ public abstract class EnumExpression<T extends Enum<T>> extends LiteralExpressio
|
||||
return nullif(ConstantImpl.create(other));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, expr)} expression
|
||||
*
|
||||
* @param expr additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings({"unchecked"})
|
||||
public EnumExpression<T> coalesce(Expression<T> expr) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(expr);
|
||||
return (EnumExpression<T>) coalesce.asEnum();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, exprs...)} expression
|
||||
*
|
||||
@ -87,14 +101,29 @@ public abstract class EnumExpression<T extends Enum<T>> extends LiteralExpressio
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public EnumExpression<T> coalesce(Expression<T>... exprs) {
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
public EnumExpression<T> coalesce(Expression<?>... exprs) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
for (Expression<T> expr : exprs) {
|
||||
for (Expression expr : exprs) {
|
||||
coalesce.add(expr);
|
||||
}
|
||||
return (EnumExpression<T>) coalesce.asEnum();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, arg)} expression
|
||||
*
|
||||
* @param arg additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings({"unchecked"})
|
||||
public EnumExpression<T> coalesce(T arg) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(arg);
|
||||
return (EnumExpression<T>) coalesce.asEnum();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, args...)} expression
|
||||
*
|
||||
@ -102,6 +131,7 @@ public abstract class EnumExpression<T extends Enum<T>> extends LiteralExpressio
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings({"unchecked"})
|
||||
public EnumExpression<T> coalesce(T... args) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
for (T arg : args) {
|
||||
|
||||
@ -804,6 +804,20 @@ public abstract class NumberExpression<T extends Number & Comparable<?>> extends
|
||||
return nullif(ConstantImpl.create(other));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, expr)} expression
|
||||
*
|
||||
* @param expr additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings({"unchecked"})
|
||||
public NumberExpression<T> coalesce(Expression<T> expr) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(expr);
|
||||
return (NumberExpression<T>) coalesce.asNumber();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, exprs...)} expression
|
||||
*
|
||||
@ -811,15 +825,29 @@ public abstract class NumberExpression<T extends Number & Comparable<?>> extends
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings({"unchecked"})
|
||||
public NumberExpression<T> coalesce(Expression<T>... exprs) {
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
public NumberExpression<T> coalesce(Expression<?>... exprs) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
for (Expression<T> expr : exprs) {
|
||||
for (Expression expr : exprs) {
|
||||
coalesce.add(expr);
|
||||
}
|
||||
return (NumberExpression<T>) coalesce.asNumber();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, arg)} expression
|
||||
*
|
||||
* @param arg additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings({"unchecked"})
|
||||
public NumberExpression<T> coalesce(T arg) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(arg);
|
||||
return (NumberExpression<T>) coalesce.asNumber();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, args...)} expression
|
||||
*
|
||||
|
||||
@ -863,6 +863,19 @@ public abstract class StringExpression extends LiteralExpression<String> {
|
||||
return nullif(ConstantImpl.create(other));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, expr)} expression
|
||||
*
|
||||
* @param expr additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public StringExpression coalesce(Expression<String> expr) {
|
||||
Coalesce<String> coalesce = new Coalesce<String>(getType(), mixin);
|
||||
coalesce.add(expr);
|
||||
return coalesce.asString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, exprs...)} expression
|
||||
*
|
||||
@ -870,14 +883,28 @@ public abstract class StringExpression extends LiteralExpression<String> {
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public StringExpression coalesce(Expression<String>... exprs) {
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
public StringExpression coalesce(Expression<?>... exprs) {
|
||||
Coalesce<String> coalesce = new Coalesce<String>(getType(), mixin);
|
||||
for (Expression<String> expr : exprs) {
|
||||
for (Expression expr : exprs) {
|
||||
coalesce.add(expr);
|
||||
}
|
||||
return coalesce.asString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, arg)} expression
|
||||
*
|
||||
* @param arg additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public StringExpression coalesce(String arg) {
|
||||
Coalesce<String> coalesce = new Coalesce<String>(getType(), mixin);
|
||||
coalesce.add(arg);
|
||||
return coalesce.asString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, args...)} expression
|
||||
*
|
||||
|
||||
@ -144,6 +144,19 @@ public abstract class TimeExpression<T extends Comparable> extends TemporalExpre
|
||||
return nullif(ConstantImpl.create(other));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, expr)} expression
|
||||
*
|
||||
* @param expr additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public TimeExpression<T> coalesce(Expression<T> expr) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(expr);
|
||||
return coalesce.asTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, exprs...)} expression
|
||||
*
|
||||
@ -151,14 +164,28 @@ public abstract class TimeExpression<T extends Comparable> extends TemporalExpre
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public TimeExpression<T> coalesce(Expression<T>... exprs) {
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
public TimeExpression<T> coalesce(Expression<?>... exprs) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
for (Expression<T> expr : exprs) {
|
||||
for (Expression expr : exprs) {
|
||||
coalesce.add(expr);
|
||||
}
|
||||
return coalesce.asTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, arg)} expression
|
||||
*
|
||||
* @param arg additional argument
|
||||
* @return coalesce
|
||||
*/
|
||||
@Override
|
||||
public TimeExpression<T> coalesce(T arg) {
|
||||
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
|
||||
coalesce.add(arg);
|
||||
return coalesce.asTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code coalesce(this, args...)} expression
|
||||
*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user