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

com.easy.query.core.proxy.SQLFunctionExpressionUtil Maven / Gradle / Ivy

package com.easy.query.core.proxy;

import com.easy.query.core.expression.builder.core.SQLNative;
import com.easy.query.core.expression.parser.core.available.RuntimeContextAvailable;
import com.easy.query.core.expression.parser.core.available.TableAvailable;
import com.easy.query.core.expression.parser.core.base.scec.core.SQLNativeChainExpressionContextImpl;
import com.easy.query.core.func.SQLFunc;
import com.easy.query.core.func.SQLFunction;

import java.util.function.Function;

/**
 * create time 2023/12/6 11:26
 * 文件说明
 *
 * @author xuejiaming
 */
public class SQLFunctionExpressionUtil {

    public static & RuntimeContextAvailable> void accept(T sqlNative, TableAvailable table, Function sqlFunc){

        SQLFunction sqlFunction = sqlFunc.apply(sqlNative.getRuntimeContext().fx());
        String sqlSegment = sqlFunction.sqlSegment(table);
        sqlNative.sqlNativeSegment(sqlSegment,context->{
            sqlFunction.consume(new SQLNativeChainExpressionContextImpl(table,context));
        });
    }
    public static & RuntimeContextAvailable> void accept(T sqlNative, TableAvailable table, Function sqlFunc,boolean asc){

        SQLFunction sqlFunction = sqlFunc.apply(sqlNative.getRuntimeContext().fx());
        String sqlSegment = sqlFunction.sqlSegment(table)+(asc?" ASC":" DESC");
        sqlNative.sqlNativeSegment(sqlSegment,context->{
            sqlFunction.consume(new SQLNativeChainExpressionContextImpl(table,context));
        });
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy