1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.dynamic.sql.delete;
17
18 import java.util.Objects;
19 import java.util.function.Function;
20
21 import org.jspecify.annotations.Nullable;
22 import org.mybatis.dynamic.sql.SqlTable;
23 import org.mybatis.dynamic.sql.dsl.AbstractDeleteDSL;
24
25 public class DeleteDSL<R> extends AbstractDeleteDSL<R, DeleteDSL<R>> {
26
27 private final Function<DeleteModel, R> adapterFunction;
28
29 private DeleteDSL(SqlTable table, @Nullable String tableAlias, Function<DeleteModel, R> adapterFunction) {
30 super(table, tableAlias);
31 this.adapterFunction = Objects.requireNonNull(adapterFunction);
32 }
33
34
35
36
37
38
39
40 @Override
41 public R build() {
42 return buildDeleteModel().map(adapterFunction);
43 }
44
45 @Override
46 protected DeleteDSL<R> getThis() {
47 return this;
48 }
49
50 public static <R> DeleteDSL<R> deleteFrom(Function<DeleteModel, R> adapterFunction, SqlTable table,
51 @Nullable String tableAlias) {
52 return new DeleteDSL<>(table, tableAlias, adapterFunction);
53 }
54
55 public static DeleteDSL<DeleteModel> deleteFrom(SqlTable table) {
56 return deleteFrom(Function.identity(), table, null);
57 }
58
59 public static DeleteDSL<DeleteModel> deleteFrom(SqlTable table, String tableAlias) {
60 return deleteFrom(Function.identity(), table, tableAlias);
61 }
62 }