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.stringHasValue;
19 import static org.mybatis.generator.internal.util.messages.Messages.getString;
20
21 import java.util.ArrayList;
22 import java.util.List;
23 import java.util.regex.Pattern;
24
25 public class IgnoredColumnPattern {
26
27 private final String patternRegex;
28 private final Pattern pattern;
29 private final List<IgnoredColumnException> exceptions = new ArrayList<>();
30
31 public IgnoredColumnPattern(String patternRegex) {
32 this.patternRegex = patternRegex;
33 pattern = Pattern.compile(patternRegex);
34 }
35
36 public void addException(IgnoredColumnException exception) {
37 exceptions.add(exception);
38 }
39
40 public boolean matches(String columnName) {
41 boolean matches = pattern.matcher(columnName).matches();
42
43 if (matches) {
44 for (IgnoredColumnException exception : exceptions) {
45 if (exception.matches(columnName)) {
46 matches = false;
47 break;
48 }
49 }
50 }
51
52 return matches;
53 }
54
55 public void validate(List<String> errors, String tableName) {
56 if (!stringHasValue(patternRegex)) {
57 errors.add(getString("ValidationError.27",
58 tableName));
59 }
60 }
61 }