22
22
package net .sf .jsqlparser .util .deparser ;
23
23
24
24
import java .util .Iterator ;
25
- import net .sf .jsqlparser .statement .SetStatement ;
26
25
26
+ import net .sf .jsqlparser .statement .SetStatement ;
27
27
import net .sf .jsqlparser .statement .StatementVisitor ;
28
28
import net .sf .jsqlparser .statement .Statements ;
29
29
import net .sf .jsqlparser .statement .alter .Alter ;
43
43
import net .sf .jsqlparser .statement .update .Update ;
44
44
45
45
public class StatementDeParser implements StatementVisitor {
46
+ private ExpressionDeParser expressionDeParser ;
47
+
48
+ private SelectDeParser selectDeParser ;
46
49
47
50
private StringBuilder buffer ;
48
51
49
52
public StatementDeParser (StringBuilder buffer ) {
53
+ this (new ExpressionDeParser (), new SelectDeParser (), buffer );
54
+ }
55
+
56
+ public StatementDeParser (ExpressionDeParser expressionDeParser , SelectDeParser selectDeParser , StringBuilder buffer ) {
57
+ this .expressionDeParser = expressionDeParser ;
58
+ this .selectDeParser = selectDeParser ;
50
59
this .buffer = buffer ;
51
60
}
52
61
@@ -76,9 +85,9 @@ public void visit(AlterView alterView) {
76
85
77
86
@ Override
78
87
public void visit (Delete delete ) {
79
- SelectDeParser selectDeParser = new SelectDeParser ();
80
88
selectDeParser .setBuffer (buffer );
81
- ExpressionDeParser expressionDeParser = new ExpressionDeParser (selectDeParser , buffer );
89
+ expressionDeParser .setSelectVisitor (selectDeParser );
90
+ expressionDeParser .setBuffer (buffer );
82
91
selectDeParser .setExpressionVisitor (expressionDeParser );
83
92
DeleteDeParser deleteDeParser = new DeleteDeParser (expressionDeParser , buffer );
84
93
deleteDeParser .deParse (delete );
@@ -92,29 +101,29 @@ public void visit(Drop drop) {
92
101
93
102
@ Override
94
103
public void visit (Insert insert ) {
95
- SelectDeParser selectDeParser = new SelectDeParser ();
96
104
selectDeParser .setBuffer (buffer );
97
- ExpressionDeParser expressionDeParser = new ExpressionDeParser (selectDeParser , buffer );
105
+ expressionDeParser .setSelectVisitor (selectDeParser );
106
+ expressionDeParser .setBuffer (buffer );
98
107
selectDeParser .setExpressionVisitor (expressionDeParser );
99
108
InsertDeParser insertDeParser = new InsertDeParser (expressionDeParser , selectDeParser , buffer );
100
109
insertDeParser .deParse (insert );
101
110
}
102
111
103
112
@ Override
104
113
public void visit (Replace replace ) {
105
- SelectDeParser selectDeParser = new SelectDeParser ();
106
114
selectDeParser .setBuffer (buffer );
107
- ExpressionDeParser expressionDeParser = new ExpressionDeParser (selectDeParser , buffer );
115
+ expressionDeParser .setSelectVisitor (selectDeParser );
116
+ expressionDeParser .setBuffer (buffer );
108
117
selectDeParser .setExpressionVisitor (expressionDeParser );
109
118
ReplaceDeParser replaceDeParser = new ReplaceDeParser (expressionDeParser , selectDeParser , buffer );
110
119
replaceDeParser .deParse (replace );
111
120
}
112
121
113
122
@ Override
114
123
public void visit (Select select ) {
115
- SelectDeParser selectDeParser = new SelectDeParser ();
116
124
selectDeParser .setBuffer (buffer );
117
- ExpressionDeParser expressionDeParser = new ExpressionDeParser (selectDeParser , buffer );
125
+ expressionDeParser .setSelectVisitor (selectDeParser );
126
+ expressionDeParser .setBuffer (buffer );
118
127
selectDeParser .setExpressionVisitor (expressionDeParser );
119
128
if (select .getWithItemsList () != null && !select .getWithItemsList ().isEmpty ()) {
120
129
buffer .append ("WITH " );
@@ -136,9 +145,9 @@ public void visit(Truncate truncate) {
136
145
137
146
@ Override
138
147
public void visit (Update update ) {
139
- SelectDeParser selectDeParser = new SelectDeParser ();
140
148
selectDeParser .setBuffer (buffer );
141
- ExpressionDeParser expressionDeParser = new ExpressionDeParser (selectDeParser , buffer );
149
+ expressionDeParser .setSelectVisitor (selectDeParser );
150
+ expressionDeParser .setBuffer (buffer );
142
151
UpdateDeParser updateDeParser = new UpdateDeParser (expressionDeParser , selectDeParser , buffer );
143
152
selectDeParser .setExpressionVisitor (expressionDeParser );
144
153
updateDeParser .deParse (update );
@@ -166,19 +175,19 @@ public void visit(Statements stmts) {
166
175
167
176
@ Override
168
177
public void visit (Execute execute ) {
169
- SelectDeParser selectDeParser = new SelectDeParser ();
170
178
selectDeParser .setBuffer (buffer );
171
- ExpressionDeParser expressionDeParser = new ExpressionDeParser (selectDeParser , buffer );
179
+ expressionDeParser .setSelectVisitor (selectDeParser );
180
+ expressionDeParser .setBuffer (buffer );
172
181
ExecuteDeParser executeDeParser = new ExecuteDeParser (expressionDeParser , buffer );
173
182
selectDeParser .setExpressionVisitor (expressionDeParser );
174
183
executeDeParser .deParse (execute );
175
184
}
176
185
177
186
@ Override
178
187
public void visit (SetStatement set ) {
179
- SelectDeParser selectDeParser = new SelectDeParser ();
180
188
selectDeParser .setBuffer (buffer );
181
- ExpressionDeParser expressionDeParser = new ExpressionDeParser (selectDeParser , buffer );
189
+ expressionDeParser .setSelectVisitor (selectDeParser );
190
+ expressionDeParser .setBuffer (buffer );
182
191
SetStatementDeParser setStatementDeparser = new SetStatementDeParser (expressionDeParser , buffer );
183
192
selectDeParser .setExpressionVisitor (expressionDeParser );
184
193
setStatementDeparser .deParse (set );
0 commit comments