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

com.yuehuanghun.mybatis.milu.criteria.LambdaStatisticPredicate Maven / Gradle / Ivy

There is a newer version: 1.18.0
Show newest version
/*
 * Copyright 2020-2022 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.yuehuanghun.mybatis.milu.criteria;

import java.util.function.Consumer;

import com.yuehuanghun.mybatis.milu.annotation.Mode;
import com.yuehuanghun.mybatis.milu.criteria.lambda.SerializableFunction;
import com.yuehuanghun.mybatis.milu.data.Sort.Direction;

public interface LambdaStatisticPredicate extends LambdaPredicate {
	
	/**
	 * 列汇总计算
	 * @param getterFn 实体类的getter函数式
	 * @return 当前对象
	 */
	LambdaStatisticPredicate sum(SerializableFunction getterFn);
	
	/**
	 * 列汇总计算
	 * @param getterFn 实体类的getter函数式
	 * @param columnAlias 统计列别名
	 * @return 当前对象
	 */
	LambdaStatisticPredicate sum(SerializableFunction getterFn, String columnAlias);

	/**
	 * 列计数
	 * @param getterFn 实体类的getter函数式
	 * @return 当前对象
	 */
	LambdaStatisticPredicate count(SerializableFunction getterFn);
	
	/**
	 * 列计数
	 * @param getterFn 实体类的getter函数式
	 * @param columnAlias 统计列别名
	 * @return 当前对象
	 */
	LambdaStatisticPredicate count(SerializableFunction getterFn, String columnAlias);

	/**
	 * 列平均值计算
	 * @param getterFn 实体类的getter函数式
	 * @return 当前对象
	 */
	LambdaStatisticPredicate avg(SerializableFunction getterFn);
	
	/**
	 * 列平均值计算
	 * @param getterFn 实体类的getter函数式
	 * @param columnAlias 统计列别名
	 * @return 当前对象
	 */
	LambdaStatisticPredicate avg(SerializableFunction getterFn, String columnAlias);

	/**
	 * 列最小值计算
	 * @param getterFn 实体类的getter函数式
	 * @return 当前对象
	 */
	LambdaStatisticPredicate min(SerializableFunction getterFn);
	
	/**
	 * 列最小值计算
	 * @param getterFn 实体类的getter函数式
	 * @param columnAlias 统计列别名
	 * @return 当前对象
	 */
	LambdaStatisticPredicate min(SerializableFunction getterFn, String columnAlias);

	/**
	 * 列最大值计算
	 * @param getterFn 实体类的getter函数式
	 * @return 当前对象
	 */
	LambdaStatisticPredicate max(SerializableFunction getterFn);
	
	/**
	 * 列最大值计算
	 * @param getterFn 实体类的getter函数式
	 * @param columnAlias 统计列别名
	 * @return 当前对象
	 */
	LambdaStatisticPredicate max(SerializableFunction getterFn, String columnAlias);

	/**
	 * 分组
	 * @param getterFn 实体类的getter函数式
	 * @return 当前对象
	 */
	LambdaStatisticPredicate groupBy(SerializableFunction getterFn);

	/**
	 * 分组
	 * @param getterFns 实体类的getter函数式
	 * @return 当前对象
	 */
	@SuppressWarnings("unchecked")
	LambdaStatisticPredicate groupBy(SerializableFunction... getterFns);

	/**
	 * 分组
	 * @param getterFn 实体类的getter函数式
	 * @param alias 别名
	 * @return 当前对象
	 */
	LambdaStatisticPredicate groupByAs(SerializableFunction getterFn, String alias);
	
	/**
	 * 添加排序,不指定排序方向,以数据库默认排序为准
	 * @param getterFns 实体类的getter函数式
	 * @return 当前对象
	 */
	@SuppressWarnings("unchecked")
	LambdaStatisticPredicate order(SerializableFunction... getterFns);
	
	/**
	 * 添加排序,不指定排序方向,以数据库默认排序为准
	 * @param getterFn 实体类的getter函数式
	 * @return 当前对象
	 */
	LambdaStatisticPredicate order(SerializableFunction getterFn);
	
	/**
	 * 添加排序,指定排序方向
	 * @param direction 排序方向枚举
	 * @param getterFns 实体类的getter函数式
	 * @return 当前对象
	 */
	@SuppressWarnings("unchecked")
	LambdaStatisticPredicate order(Direction direction, SerializableFunction... getterFns);
	
	/**
	 * 添加排序,指定排序方向
	 * @param direction 排序方向枚举
	 * @param getterFn 实体类的getter函数式
	 * @return 当前对象
	 */
	LambdaStatisticPredicate order(Direction direction, SerializableFunction getterFn);

	/**
	 * 添加升序排序
	 * @param getterFns 实体类的getter函数式
	 * @return 当前对象
	 */
	@SuppressWarnings("unchecked")
	LambdaStatisticPredicate orderAsc(SerializableFunction... getterFns);

	/**
	 * 添加升序排序
	 * @param getterFn 实体类的getter函数式
	 * @return 当前对象
	 */
	LambdaStatisticPredicate orderAsc(SerializableFunction getterFn);
	
	/**
	 * 添加降序排序
	 * @param getterFns 实体类的getter函数式
	 * @return 当前对象
	 */
	@SuppressWarnings("unchecked")
	LambdaStatisticPredicate orderDesc(SerializableFunction... getterFns);
	
	/**
	 * 添加降序排序
	 * @param getterFn 实体类的getter函数式
	 * @return 当前对象
	 */
	LambdaStatisticPredicate orderDesc(SerializableFunction getterFn);

	/**
	 * 获取第1页的pageSize条数据
	 * @param pageSize 每页行数
	 * @return 当前对象
	 */
	LambdaStatisticPredicate limit(int pageSize);
	
	/**
	 * 获取第1页的pageSize条数据
	 * @param pageSize 每页行数
	 * @param count 是否查询符合的总行数
	 * @return 当前对象
	 */
	LambdaStatisticPredicate limit(int pageSize, boolean count);
	
	/**
	 * 获取第pageNum页的pageSize条数据
	 * @param pageNum 起始页,从1开始
	 * @param pageSize 每页行数
	 * @return 当前对象
	 */
	LambdaStatisticPredicate limit(int pageNum, int pageSize);
	
	/**
	 * 
	 * 获取第pageNum页的pageSize条数据
	 * @param pageNum 起始页,从1开始
	 * @param pageSize 每页行数
	 * @param count 是否查询符合的总行数
	 * @return 当前对象
	 */
	LambdaStatisticPredicate limit(int pageNum, int pageSize, boolean count);

	@Override
	LambdaStatisticPredicate apply(T entity);

	@Override
	LambdaStatisticPredicate conditionMode(Mode conditionMode);
	
	@Override
	LambdaStatisticPredicate and(Condition... conditions);
	
	@Override
	LambdaStatisticPredicate and(Consumer> predicate);

	@Override
	LambdaStatisticPredicate or(Condition... conditions);
	
	@Override
	LambdaStatisticPredicate or(Consumer> predicate);

	@Override
	LambdaStatisticPredicate not(Condition... conditions);
	
	@Override
	LambdaStatisticPredicate not(Consumer> predicate);

	@Override
	LambdaStatisticPredicate andP(Consumer predicate);
	
	@Override
	LambdaStatisticPredicate orP(Consumer predicate);
	
	@Override
	LambdaStatisticPredicate notP(Consumer predicate);

	@Override
	LambdaStatisticPredicate eq(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate eq(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate neq(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate neq(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate lt(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate lt(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate lte(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate lte(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate gt(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate gt(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate gte(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate gte(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate like(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate like(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate notLike(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate notLike(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate contain(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate contain(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate notContain(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate notContain(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate startWith(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate startWith(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate endWith(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate endWith(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate between(SerializableFunction fn, Object startValue, Object endValue);

	@Override
	LambdaStatisticPredicate between(boolean accept, SerializableFunction fn, Object startValue,
			Object endValue);

	@Override
	LambdaStatisticPredicate isNull(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate isNull(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate notNull(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate notNull(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate in(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate in(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate notIn(SerializableFunction fn);

	@Override
	LambdaStatisticPredicate notIn(boolean accept, SerializableFunction fn);

	@Override
	LambdaStatisticPredicate eq(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate eq(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate neq(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate neq(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate lt(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate lt(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate lte(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate lte(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate gt(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate gt(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate gte(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate gte(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate like(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate like(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate notLike(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate notLike(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate contain(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate contain(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate notContain(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate notContain(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate startWith(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate startWith(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate endWith(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate endWith(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate in(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate in(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate notIn(SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate notIn(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate regex(SerializableFunction getterFn, Object value);
	
	@Override
	LambdaStatisticPredicate regex(boolean accept, SerializableFunction getterFn, Object value);

	@Override
	LambdaStatisticPredicate undeleted();
	
	@Override
	LambdaStatisticPredicate deleted();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy