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

db.sql.api.cmd.executor.IUpdate Maven / Gradle / Ivy

package db.sql.api.cmd.executor;

import db.sql.api.Cmd;
import db.sql.api.cmd.JoinMode;
import db.sql.api.cmd.executor.method.IFromMethod;
import db.sql.api.cmd.executor.method.IJoinMethod;
import db.sql.api.cmd.executor.method.IUpdateMethod;
import db.sql.api.cmd.executor.method.IWhereMethod;
import db.sql.api.cmd.struct.IFrom;
import db.sql.api.cmd.struct.IJoin;
import db.sql.api.cmd.struct.IOn;
import db.sql.api.cmd.struct.IWhere;
import db.sql.api.cmd.struct.conditionChain.IConditionChain;
import db.sql.api.cmd.struct.update.IUpdateTable;

import java.util.function.Consumer;

public interface IUpdate,
        UPDATE_TABLE extends IUpdateTable,
        FROM extends IFrom,
        JOIN extends IJoin,
        ON extends IOn,
        WHERE extends IWhere
        >

        extends IUpdateMethod,
        IFromMethod,
        IJoinMethod,
        IWhereMethod,
        IExecutor {


    UPDATE_TABLE $update(TABLE... tables);

    FROM $from(DATASET... tables);

    JOIN $join(JoinMode mode, TABLE mainTable, TABLE secondTable);

    WHERE $where();

    @Override
    default SELF update(TABLE... tables) {
        $update(tables);
        return (SELF) this;
    }

    SELF update(Class entity, Consumer
consumer); @Override default SELF from(DATASET... tables) { $from(tables); return (SELF) this; } @Override default CONDITION_CHAIN conditionChain() { return $where().conditionChain(); } }