[#6246] Add Kotlin operators on Field
This commit is contained in:
parent
9661e1531b
commit
a898acbf36
@ -525,6 +525,23 @@ public interface Field<T> extends SelectField<T>, GroupField, FieldOrRow {
|
||||
@Support
|
||||
Field<T> neg();
|
||||
|
||||
/**
|
||||
* Negate this field to get its negative value.
|
||||
* <p>
|
||||
* This is an alias for {@link #neg()}, which can be recognised by the
|
||||
* Kotlin language for operator overloading.
|
||||
*/
|
||||
@Support
|
||||
Field<T> unaryMinus();
|
||||
|
||||
/**
|
||||
* Get this field as its positive value (no effect on SQL).
|
||||
* <p>
|
||||
* This can be recognised by the Kotlin language for operator overloading.
|
||||
*/
|
||||
@Support
|
||||
Field<T> unaryPlus();
|
||||
|
||||
/**
|
||||
* An arithmetic expression adding this to value.
|
||||
*
|
||||
@ -707,6 +724,22 @@ public interface Field<T> extends SelectField<T>, GroupField, FieldOrRow {
|
||||
@Support
|
||||
Field<T> multiply(Field<? extends Number> value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #mul(Number)}.
|
||||
*
|
||||
* @see #mul(Number)
|
||||
*/
|
||||
@Support
|
||||
Field<T> times(Number value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #mul(Field)}.
|
||||
*
|
||||
* @see #mul(Field)
|
||||
*/
|
||||
@Support
|
||||
Field<T> times(Field<? extends Number> value);
|
||||
|
||||
/**
|
||||
* An arithmetic expression dividing this by value.
|
||||
* <p>
|
||||
@ -785,6 +818,22 @@ public interface Field<T> extends SelectField<T>, GroupField, FieldOrRow {
|
||||
@Support
|
||||
Field<T> modulo(Field<? extends Number> value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #mod(Number)}.
|
||||
*
|
||||
* @see #mod(Number)
|
||||
*/
|
||||
@Support
|
||||
Field<T> rem(Number value);
|
||||
|
||||
/**
|
||||
* An alias for {@link #mod(Field)}.
|
||||
*
|
||||
* @see #mod(Field)
|
||||
*/
|
||||
@Support
|
||||
Field<T> rem(Field<? extends Number> value);
|
||||
|
||||
/**
|
||||
* An arithmetic expression getting this value raised to the power of <code>exponent</code>.
|
||||
* <p>
|
||||
|
||||
@ -403,6 +403,16 @@ abstract class AbstractField<T> extends AbstractQueryPart implements Field<T> {
|
||||
return new Neg<T>(this, ExpressionOperator.SUBTRACT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> unaryMinus() {
|
||||
return neg();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> unaryPlus() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> add(Number value) {
|
||||
return add(Tools.field(value));
|
||||
@ -505,6 +515,16 @@ abstract class AbstractField<T> extends AbstractQueryPart implements Field<T> {
|
||||
return mul(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> times(Number value) {
|
||||
return mul(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> times(Field<? extends Number> value) {
|
||||
return mul(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> divide(Number value) {
|
||||
return div(value);
|
||||
@ -525,6 +545,16 @@ abstract class AbstractField<T> extends AbstractQueryPart implements Field<T> {
|
||||
return mod(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> rem(Number value) {
|
||||
return mod(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> rem(Field<? extends Number> value) {
|
||||
return mod(value);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: Bitwise operations
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
Loading…
Reference in New Issue
Block a user