Skip to content

Commit 348fd7f

Browse files
committed
completed ExpressionVisitorAdapter
1 parent 94c6355 commit 348fd7f

File tree

1 file changed

+38
-3
lines changed

1 file changed

+38
-3
lines changed

src/main/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapter.java

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,46 @@
2727
import net.sf.jsqlparser.expression.operators.relational.*;
2828
import net.sf.jsqlparser.schema.Column;
2929
import net.sf.jsqlparser.statement.select.OrderByElement;
30+
import net.sf.jsqlparser.statement.select.PivotVisitor;
31+
import net.sf.jsqlparser.statement.select.SelectVisitor;
3032
import net.sf.jsqlparser.statement.select.SubSelect;
33+
import net.sf.jsqlparser.statement.select.WithItem;
3134

3235
public class ExpressionVisitorAdapter implements ExpressionVisitor, ItemsListVisitor {
3336

37+
private SelectVisitor selectVisitor;
38+
39+
public SelectVisitor getSelectVisitor() {
40+
return selectVisitor;
41+
}
42+
43+
public void setSelectVisitor(SelectVisitor selectVisitor) {
44+
this.selectVisitor = selectVisitor;
45+
}
46+
47+
private PivotVisitor pivotVisitor;
48+
49+
public PivotVisitor getPivotVisitor() {
50+
return pivotVisitor;
51+
}
52+
53+
public void setPivotVisitor(PivotVisitor pivotVisitor) {
54+
this.pivotVisitor = pivotVisitor;
55+
}
56+
3457
@Override
3558
public void visit(NullValue value) {
3659

3760
}
3861

3962
@Override
4063
public void visit(Function function) {
41-
64+
if (function.getParameters() != null) {
65+
function.getParameters().accept(this);
66+
}
67+
if (function.getKeep() != null) {
68+
function.getKeep().accept(this);
69+
}
4270
}
4371

4472
@Override
@@ -182,7 +210,15 @@ public void visit(Column column) {
182210

183211
@Override
184212
public void visit(SubSelect subSelect) {
185-
213+
if (selectVisitor != null) {
214+
for (WithItem item : subSelect.getWithItemsList()) {
215+
item.accept(selectVisitor);
216+
}
217+
}
218+
subSelect.getSelectBody().accept(selectVisitor);
219+
if (pivotVisitor != null && subSelect.getPivot() != null) {
220+
subSelect.getPivot().accept(pivotVisitor);
221+
}
186222
}
187223

188224
@Override
@@ -274,7 +310,6 @@ public void visit(ExtractExpression expr) {
274310

275311
@Override
276312
public void visit(IntervalExpression expr) {
277-
278313
}
279314

280315
@Override

0 commit comments

Comments
 (0)