1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.dynamic.sql.where.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 DefaultWhereClauseProvider implements WhereClauseProvider {
25 private final String whereClause;
26 private final Map<String, Object> parameters;
27
28 private DefaultWhereClauseProvider(Builder builder) {
29 whereClause = Objects.requireNonNull(builder.whereClause);
30 parameters = builder.parameters;
31 }
32
33 @Override
34 public Map<String, Object> getParameters() {
35 return parameters;
36 }
37
38 @Override
39 public String getWhereClause() {
40 return whereClause;
41 }
42
43 public static Builder withWhereClause(String whereClause) {
44 return new Builder().withWhereClause(whereClause);
45 }
46
47 public static class Builder {
48 private @Nullable String whereClause;
49 private final Map<String, Object> parameters = new HashMap<>();
50
51 public Builder withWhereClause(String whereClause) {
52 this.whereClause = whereClause;
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 DefaultWhereClauseProvider build() {
62 return new DefaultWhereClauseProvider(this);
63 }
64 }
65 }