1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.dynamic.sql.delete.render;
17
18 import java.util.HashMap;
19 import java.util.Map;
20 import java.util.Objects;
21
22 import org.jspecify.annotations.Nullable;
23
24 public class DefaultDeleteStatementProvider implements DeleteStatementProvider {
25 private final String deleteStatement;
26 private final Map<String, Object> parameters;
27
28 private DefaultDeleteStatementProvider(Builder builder) {
29 deleteStatement = Objects.requireNonNull(builder.deleteStatement);
30 parameters = builder.parameters;
31 }
32
33 @Override
34 public Map<String, Object> getParameters() {
35 return parameters;
36 }
37
38 @Override
39 public String getDeleteStatement() {
40 return deleteStatement;
41 }
42
43 public static Builder withDeleteStatement(String deleteStatement) {
44 return new Builder().withDeleteStatement(deleteStatement);
45 }
46
47 public static class Builder {
48 private @Nullable String deleteStatement;
49 private final Map<String, Object> parameters = new HashMap<>();
50
51 public Builder withDeleteStatement(String deleteStatement) {
52 this.deleteStatement = deleteStatement;
53 return this;
54 }
55
56 public Builder withParameters(Map<String, Object> parameters) {
57 this.parameters.putAll(parameters);
58 return this;
59 }
60
61 public DefaultDeleteStatementProvider build() {
62 return new DefaultDeleteStatementProvider(this);
63 }
64 }
65 }