[#2372] Add aliases for arithmetic operators to be able to use
Groovy default operator overloading
This commit is contained in:
parent
7ede90174a
commit
cccce72086
@ -359,6 +359,22 @@ public interface Field<T> extends GroupField {
|
||||
@Support
|
||||
Field<T> add(Field<?> value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #add(Number)}.
|
||||
*
|
||||
* @see #add(Number)
|
||||
*/
|
||||
@Support
|
||||
Field<T> plus(Number value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #add(Field)}.
|
||||
*
|
||||
* @see #add(Field)
|
||||
*/
|
||||
@Support
|
||||
Field<T> plus(Field<?> value);
|
||||
|
||||
/**
|
||||
* An arithmetic expression subtracting value from this.
|
||||
*
|
||||
@ -408,6 +424,38 @@ public interface Field<T> extends GroupField {
|
||||
@Support
|
||||
Field<T> sub(Field<?> value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #sub(Number)}.
|
||||
*
|
||||
* @see #sub(Number)
|
||||
*/
|
||||
@Support
|
||||
Field<T> subtract(Number value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #sub(Field)}.
|
||||
*
|
||||
* @see #sub(Field)
|
||||
*/
|
||||
@Support
|
||||
Field<T> subtract(Field<?> value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #sub(Number)}.
|
||||
*
|
||||
* @see #sub(Number)
|
||||
*/
|
||||
@Support
|
||||
Field<T> minus(Number value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #sub(Field)}.
|
||||
*
|
||||
* @see #sub(Field)
|
||||
*/
|
||||
@Support
|
||||
Field<T> minus(Field<?> value);
|
||||
|
||||
/**
|
||||
* An arithmetic expression multiplying this with value
|
||||
* <p>
|
||||
@ -434,6 +482,22 @@ public interface Field<T> extends GroupField {
|
||||
@Support
|
||||
Field<T> mul(Field<? extends Number> value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #mul(Number)}.
|
||||
*
|
||||
* @see #mul(Number)
|
||||
*/
|
||||
@Support
|
||||
Field<T> multiply(Number value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #mul(Field)}.
|
||||
*
|
||||
* @see #mul(Field)
|
||||
*/
|
||||
@Support
|
||||
Field<T> multiply(Field<? extends Number> value);
|
||||
|
||||
/**
|
||||
* An arithmetic expression dividing this by value
|
||||
* <p>
|
||||
@ -460,6 +524,22 @@ public interface Field<T> extends GroupField {
|
||||
@Support
|
||||
Field<T> div(Field<? extends Number> value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #div(Number)}.
|
||||
*
|
||||
* @see #div(Number)
|
||||
*/
|
||||
@Support
|
||||
Field<T> divide(Number value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #div(Field)}.
|
||||
*
|
||||
* @see #div(Field)
|
||||
*/
|
||||
@Support
|
||||
Field<T> divide(Field<? extends Number> value);
|
||||
|
||||
/**
|
||||
* An arithmetic expression getting the modulo of this divided by value
|
||||
* <p>
|
||||
@ -480,6 +560,22 @@ public interface Field<T> extends GroupField {
|
||||
@Support
|
||||
Field<T> mod(Field<? extends Number> value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #mod(Number)}.
|
||||
*
|
||||
* @see #mod(Number)
|
||||
*/
|
||||
@Support
|
||||
Field<T> modulo(Number value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #mod(Field)}.
|
||||
*
|
||||
* @see #mod(Field)
|
||||
*/
|
||||
@Support
|
||||
Field<T> modulo(Field<? extends Number> value);
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// NULL predicates
|
||||
// ------------------------------------------------------------------------
|
||||
@ -1840,6 +1936,14 @@ public interface Field<T> extends GroupField {
|
||||
* @see Factory#power(Field, Number)
|
||||
*/
|
||||
@Support({ ASE, CUBRID, DB2, DERBY, FIREBIRD, H2, HSQLDB, INGRES, MYSQL, ORACLE, POSTGRES, SQLSERVER, SYBASE })
|
||||
Field<BigDecimal> pow(Number exponent);
|
||||
|
||||
/**
|
||||
* An alias for {@link #power(Number)}.
|
||||
*
|
||||
* @see #power(Number)
|
||||
*/
|
||||
@Support({ ASE, CUBRID, DB2, DERBY, FIREBIRD, H2, HSQLDB, INGRES, MYSQL, ORACLE, POSTGRES, SQLSERVER, SYBASE })
|
||||
Field<BigDecimal> power(Number exponent);
|
||||
|
||||
/**
|
||||
|
||||
@ -303,6 +303,70 @@ abstract class AbstractField<T> extends AbstractQueryPart implements Field<T> {
|
||||
return new Mod<T>(this, nullSafe(value));
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: Arithmetic operation aliases
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public final Field<T> plus(Number value) {
|
||||
return add(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> plus(Field<?> value) {
|
||||
return add(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> subtract(Number value) {
|
||||
return sub(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> subtract(Field<?> value) {
|
||||
return sub(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> minus(Number value) {
|
||||
return sub(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> minus(Field<?> value) {
|
||||
return sub(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> multiply(Number value) {
|
||||
return mul(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> multiply(Field<? extends Number> value) {
|
||||
return mul(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> divide(Number value) {
|
||||
return div(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> divide(Field<? extends Number> value) {
|
||||
return div(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> modulo(Number value) {
|
||||
return mod(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> modulo(Field<? extends Number> value) {
|
||||
return mod(value);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: Conditions created from this field
|
||||
// ------------------------------------------------------------------------
|
||||
@ -1029,10 +1093,15 @@ abstract class AbstractField<T> extends AbstractQueryPart implements Field<T> {
|
||||
return Factory.log(numeric(), base);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<BigDecimal> pow(Number exponent) {
|
||||
return Factory.power(numeric(), exponent);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public final Field<BigDecimal> power(Number exponent) {
|
||||
return Factory.power(numeric(), exponent);
|
||||
return pow(exponent);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
Reference in New Issue
Block a user