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

db.sql.api.cmd.executor.method.groupByMethod.IGroupByMethods Maven / Gradle / Ivy

package db.sql.api.cmd.executor.method.groupByMethod;


import db.sql.api.Cmd;
import db.sql.api.Getter;
import db.sql.api.cmd.basic.IColumn;
import db.sql.api.cmd.executor.ISubQuery;

import java.util.function.Function;

public interface IGroupByMethods
        extends
        IGroupByCmdMethod,
        IGroupByGetterMethod,
        IGroupByGetterFunMethod,
        IGroupByMultiGetterMethod,
        IGroupByMultiGetterFunMethod,
        IGroupBySubQueryMethod,
        IGroupBySubQueryGetterMethod,
        IGroupBySubQueryGetterFunMethod,
        IGroupBySubQueryMultiGetterMethod,
        IGroupBySubQueryMultiGetterFunMethod {

    @Override
    default  SELF groupBy(ISubQuery subQuery, Getter... columns) {
        for (Getter column : columns) {
            this.groupBy(subQuery, column);
        }
        return (SELF) this;
    }

    SELF groupBy(String columnName);

    SELF groupByWithFun(String columnName, Function f);

    default SELF groupBy(boolean when, String columnName) {
        if (!when) {
            return (SELF) this;
        }
        return this.groupBy(columnName);
    }

    default SELF groupByWithFun(boolean when, String columnName, Function f) {
        if (!when) {
            return (SELF) this;
        }
        return this.groupByWithFun(columnName, f);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy