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 * @return coalesce
*/ */
@Override @Override
public BooleanExpression coalesce(Expression<?>... exprs) { public BooleanExpression coalesce(Expression<Boolean>... exprs) {
Coalesce<Boolean> coalesce = new Coalesce<Boolean>(getType(), mixin); Coalesce<Boolean> coalesce = new Coalesce<Boolean>(getType(), mixin);
for (Expression expr : exprs) { for (Expression<Boolean> expr : exprs) {
coalesce.add(expr); coalesce.add(expr);
} }
return coalesce.asBoolean(); return coalesce.asBoolean();

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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