All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.babyfish.jimmer.sql.ast.NumericExpression Maven / Gradle / Ivy

The newest version!
package org.babyfish.jimmer.sql.ast;

import org.babyfish.jimmer.sql.ast.impl.CoalesceBuilder;
import org.jetbrains.annotations.NotNull;

import java.math.BigDecimal;

public interface NumericExpression> extends ComparableExpression {

    NumericExpression plus(Expression other);

    NumericExpression plus(N other);

    NumericExpression minus(Expression other);

    NumericExpression minus(N other);

    NumericExpression times(Expression other);

    NumericExpression times(N other);

    NumericExpression div(Expression other);

    NumericExpression div(N other);

    NumericExpression rem(Expression other);

    NumericExpression rem(N other);

    NumericExpression unaryMinus();

    @NotNull Predicate lt(@NotNull Expression other);

    @NotNull Predicate lt(@NotNull N other);

    @NotNull Predicate le(@NotNull Expression other);

    @NotNull Predicate le(@NotNull N other);

    @NotNull Predicate gt(@NotNull Expression other);

    @NotNull Predicate gt(@NotNull N other);

    @NotNull Predicate ge(@NotNull Expression other);

    @NotNull Predicate ge(@NotNull N other);

    @NotNull Predicate between(@NotNull Expression min, @NotNull Expression max);

    @NotNull Predicate between(@NotNull N min, @NotNull N max);

    @NotNull Predicate notBetween(@NotNull Expression min, @NotNull Expression max);

    @NotNull Predicate notBetween(@NotNull N min, @NotNull N max);

    NumericExpression sum();

    NumericExpression sumAsLong();

    NumericExpression min();

    NumericExpression max();

    NumericExpression avg();

    NumericExpression avgAsDecimal();

    @Override
    @NotNull
    NumericExpression coalesce(N defaultValue);

    @Override
    @NotNull
    NumericExpression coalesce(Expression defaultExpr);

    @Override
    CoalesceBuilder.@NotNull Num coalesceBuilder();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy