1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.encrypt.rewrite.token.pojo;
19
20 import lombok.Getter;
21 import org.apache.shardingsphere.infra.rewrite.sql.token.common.pojo.SQLToken;
22 import org.apache.shardingsphere.infra.rewrite.sql.token.common.pojo.Substitutable;
23
24 import java.util.Collection;
25 import java.util.Map;
26
27
28
29
30 public final class EncryptPredicateInRightValueToken extends SQLToken implements Substitutable {
31
32 @Getter
33 private final int stopIndex;
34
35 private final Map<Integer, Object> indexValues;
36
37 private final Collection<Integer> paramMarkerIndexes;
38
39 public EncryptPredicateInRightValueToken(final int startIndex, final int stopIndex, final Map<Integer, Object> indexValues, final Collection<Integer> paramMarkerIndexes) {
40 super(startIndex);
41 this.stopIndex = stopIndex;
42 this.indexValues = indexValues;
43 this.paramMarkerIndexes = paramMarkerIndexes;
44 }
45
46 @Override
47 public String toString() {
48 StringBuilder result = new StringBuilder();
49 result.append('(');
50 for (int i = 0; i < indexValues.size() + paramMarkerIndexes.size(); i++) {
51 if (paramMarkerIndexes.contains(i)) {
52 result.append('?');
53 } else {
54 if (indexValues.get(i) instanceof String) {
55 result.append('\'').append(indexValues.get(i)).append('\'');
56 } else {
57 result.append(indexValues.get(i));
58 }
59 }
60 result.append(", ");
61 }
62 result.delete(result.length() - 2, result.length()).append(')');
63 return result.toString();
64 }
65 }