Type generic in coalesce methods

This commit is contained in:
Jan-Willem Gmelig Meyling 2021-06-02 20:33:55 +02:00
parent a4264c3d1d
commit 78fe927fcf
9 changed files with 19 additions and 25 deletions

View File

@ -184,9 +184,9 @@ public abstract class BooleanExpression extends LiteralExpression<Boolean> imple
* @return coalesce
*/
@Override
public BooleanExpression coalesce(Expression<?>... exprs) {
public BooleanExpression coalesce(Expression<Boolean>... exprs) {
Coalesce<Boolean> coalesce = new Coalesce<Boolean>(getType(), mixin);
for (Expression expr : exprs) {
for (Expression<Boolean> expr : exprs) {
coalesce.add(expr);
}
return coalesce.asBoolean();

View File

@ -416,10 +416,9 @@ public abstract class ComparableExpression<T extends Comparable> extends Compara
* @return coalesce
*/
@Override
@SuppressWarnings({"unchecked", "rawtypes"})
public ComparableExpression<T> coalesce(Expression<?>... exprs) {
public ComparableExpression<T> coalesce(Expression<T>... exprs) {
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
for (Expression expr : exprs) {
for (Expression<T> expr : exprs) {
coalesce.add(expr);
}
return coalesce.getValue();

View File

@ -58,10 +58,9 @@ public abstract class ComparableExpressionBase<T extends Comparable> extends Sim
* @param exprs additional arguments
* @return coalesce
*/
@SuppressWarnings("unchecked")
public ComparableExpressionBase<T> coalesce(Expression<?>...exprs) {
public ComparableExpressionBase<T> coalesce(Expression<T>...exprs) {
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
for (Expression expr : exprs) {
for (Expression<T> expr : exprs) {
coalesce.add(expr);
}
return coalesce.getValue();

View File

@ -235,9 +235,9 @@ public abstract class DateExpression<T extends Comparable> extends TemporalExpre
* @return coalesce
*/
@Override
public DateExpression<T> coalesce(Expression<?>... exprs) {
public DateExpression<T> coalesce(Expression<T>... exprs) {
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
for (Expression expr : exprs) {
for (Expression<T> expr : exprs) {
coalesce.add(expr);
}
return coalesce.asDate();

View File

@ -305,9 +305,9 @@ public abstract class DateTimeExpression<T extends Comparable> extends TemporalE
* @return coalesce
*/
@Override
public DateTimeExpression<T> coalesce(Expression<?>... exprs) {
public DateTimeExpression<T> coalesce(Expression<T>... exprs) {
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
for (Expression expr : exprs) {
for (Expression<T> expr : exprs) {
coalesce.add(expr);
}
return coalesce.asDateTime();

View File

@ -87,10 +87,9 @@ public abstract class EnumExpression<T extends Enum<T>> extends LiteralExpressio
* @return coalesce
*/
@Override
@SuppressWarnings({"unchecked", "rawtypes"})
public EnumExpression<T> coalesce(Expression<?>... exprs) {
public EnumExpression<T> coalesce(Expression<T>... exprs) {
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
for (Expression expr : exprs) {
for (Expression<T> expr : exprs) {
coalesce.add(expr);
}
return (EnumExpression<T>) coalesce.asEnum();
@ -103,7 +102,6 @@ public abstract class EnumExpression<T extends Enum<T>> extends LiteralExpressio
* @return coalesce
*/
@Override
@SuppressWarnings({"unchecked", "rawtypes"})
public EnumExpression<T> coalesce(T... args) {
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
for (T arg : args) {

View File

@ -811,10 +811,10 @@ public abstract class NumberExpression<T extends Number & Comparable<?>> extends
* @return coalesce
*/
@Override
@SuppressWarnings({"unchecked", "rawtypes"})
public NumberExpression<T> coalesce(Expression<?>... exprs) {
@SuppressWarnings({"unchecked"})
public NumberExpression<T> coalesce(Expression<T>... exprs) {
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
for (Expression expr : exprs) {
for (Expression<T> expr : exprs) {
coalesce.add(expr);
}
return (NumberExpression<T>) coalesce.asNumber();

View File

@ -870,10 +870,9 @@ public abstract class StringExpression extends LiteralExpression<String> {
* @return coalesce
*/
@Override
@SuppressWarnings({"unchecked", "rawtypes"})
public StringExpression coalesce(Expression<?>... exprs) {
public StringExpression coalesce(Expression<String>... exprs) {
Coalesce<String> coalesce = new Coalesce<String>(getType(), mixin);
for (Expression expr : exprs) {
for (Expression<String> expr : exprs) {
coalesce.add(expr);
}
return coalesce.asString();

View File

@ -151,10 +151,9 @@ public abstract class TimeExpression<T extends Comparable> extends TemporalExpre
* @return coalesce
*/
@Override
@SuppressWarnings({"unchecked", "rawtypes"})
public TimeExpression<T> coalesce(Expression<?>... exprs) {
public TimeExpression<T> coalesce(Expression<T>... exprs) {
Coalesce<T> coalesce = new Coalesce<T>(getType(), mixin);
for (Expression expr : exprs) {
for (Expression<T> expr : exprs) {
coalesce.add(expr);
}
return coalesce.asTime();