@@ -29,16 +29,20 @@ public class TrimSqlNode implements SqlNode {
29
29
private SqlNode contents ;
30
30
private String prefix ;
31
31
private String suffix ;
32
- private List <String > prefixesToOverride = new ArrayList < String >() ;
33
- private List <String > suffixesToOverride = new ArrayList < String >() ;
32
+ private List <String > prefixesToOverride ;
33
+ private List <String > suffixesToOverride ;
34
34
private Configuration configuration ;
35
35
36
36
public TrimSqlNode (Configuration configuration , SqlNode contents , String prefix , String prefixesToOverride , String suffix , String suffixesToOverride ) {
37
+ this (configuration , contents , prefix , parseOverrides (prefixesToOverride ), suffix , parseOverrides (suffixesToOverride ));;
38
+ }
39
+
40
+ protected TrimSqlNode (Configuration configuration , SqlNode contents , String prefix , List <String > prefixesToOverride , String suffix , List <String > suffixesToOverride ) {
37
41
this .contents = contents ;
38
42
this .prefix = prefix ;
39
- this .prefixesToOverride = parseOverrides ( prefixesToOverride ) ;
43
+ this .prefixesToOverride = prefixesToOverride ;
40
44
this .suffix = suffix ;
41
- this .suffixesToOverride = parseOverrides ( suffixesToOverride ) ;
45
+ this .suffixesToOverride = suffixesToOverride ;
42
46
this .configuration = configuration ;
43
47
}
44
48
@@ -49,7 +53,7 @@ public boolean apply(DynamicContext context) {
49
53
return result ;
50
54
}
51
55
52
- private List <String > parseOverrides (String overrides ) {
56
+ private static List <String > parseOverrides (String overrides ) {
53
57
if (overrides != null ) {
54
58
final StringTokenizer parser = new StringTokenizer (overrides , "|" , false );
55
59
return new ArrayList <String >() {
@@ -117,10 +121,12 @@ public String getSql() {
117
121
private void applyPrefix (StringBuilder sql , String trimmedUppercaseSql ) {
118
122
if (!prefixApplied ) {
119
123
prefixApplied = true ;
120
- for (String toRemove : prefixesToOverride ) {
121
- if (trimmedUppercaseSql .startsWith (toRemove )) {
122
- sql .delete (0 , toRemove .trim ().length ());
123
- break ;
124
+ if (prefixesToOverride != null ) {
125
+ for (String toRemove : prefixesToOverride ) {
126
+ if (trimmedUppercaseSql .startsWith (toRemove )) {
127
+ sql .delete (0 , toRemove .trim ().length ());
128
+ break ;
129
+ }
124
130
}
125
131
}
126
132
if (prefix != null ) {
@@ -133,12 +139,14 @@ private void applyPrefix(StringBuilder sql, String trimmedUppercaseSql) {
133
139
private void applySuffix (StringBuilder sql , String trimmedUppercaseSql ) {
134
140
if (!suffixApplied ) {
135
141
suffixApplied = true ;
136
- for (String toRemove : suffixesToOverride ) {
137
- if (trimmedUppercaseSql .endsWith (toRemove ) || trimmedUppercaseSql .endsWith (toRemove .trim ())) {
138
- int start = sql .length () - toRemove .trim ().length ();
139
- int end = sql .length ();
140
- sql .delete (start , end );
141
- break ;
142
+ if (suffixesToOverride != null ) {
143
+ for (String toRemove : suffixesToOverride ) {
144
+ if (trimmedUppercaseSql .endsWith (toRemove ) || trimmedUppercaseSql .endsWith (toRemove .trim ())) {
145
+ int start = sql .length () - toRemove .trim ().length ();
146
+ int end = sql .length ();
147
+ sql .delete (start , end );
148
+ break ;
149
+ }
142
150
}
143
151
}
144
152
if (suffix != null ) {
0 commit comments