1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.config;
17
18 import static org.mybatis.generator.internal.util.StringUtility.stringContainsSpace;
19 import static org.mybatis.generator.internal.util.StringUtility.stringHasValue;
20 import static org.mybatis.generator.internal.util.messages.Messages.getString;
21
22 import java.util.List;
23 import java.util.Objects;
24
25 import org.jspecify.annotations.Nullable;
26
27 public class IgnoredColumn {
28 protected final String columnName;
29 private final boolean isColumnNameDelimited;
30
31 public IgnoredColumn(@Nullable String columnName, boolean isColumnNameDelimited) {
32 this.columnName = Objects.requireNonNull(columnName);
33 this.isColumnNameDelimited = isColumnNameDelimited || stringContainsSpace(columnName);
34 }
35
36 public String getColumnName() {
37 return columnName;
38 }
39
40 @Override
41 public boolean equals(Object obj) {
42 if (!(obj instanceof IgnoredColumn)) {
43 return false;
44 }
45
46 return columnName.equals(((IgnoredColumn) obj).getColumnName());
47 }
48
49 @Override
50 public int hashCode() {
51 return columnName.hashCode();
52 }
53
54 public void validate(List<String> errors, String tableName) {
55 if (!stringHasValue(columnName)) {
56 errors.add(getString("ValidationError.21", tableName));
57 }
58 }
59
60 public boolean matches(String columnName) {
61 if (isColumnNameDelimited) {
62 return this.columnName.equals(columnName);
63 } else {
64 return this.columnName.equalsIgnoreCase(columnName);
65 }
66 }
67 }