Skip to content

Commit 8ec0b19

Browse files
committed
completed ExpressionVisitorAdapter
1 parent cf703d8 commit 8ec0b19

File tree

1 file changed

+57
-13
lines changed

1 file changed

+57
-13
lines changed

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

Lines changed: 57 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,21 @@
2626
import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
2727
import net.sf.jsqlparser.expression.operators.relational.*;
2828
import net.sf.jsqlparser.schema.Column;
29+
import net.sf.jsqlparser.statement.select.AllColumns;
30+
import net.sf.jsqlparser.statement.select.AllTableColumns;
31+
import net.sf.jsqlparser.statement.select.ExpressionListItem;
32+
import net.sf.jsqlparser.statement.select.FunctionItem;
2933
import net.sf.jsqlparser.statement.select.OrderByElement;
34+
import net.sf.jsqlparser.statement.select.Pivot;
3035
import net.sf.jsqlparser.statement.select.PivotVisitor;
36+
import net.sf.jsqlparser.statement.select.PivotXml;
37+
import net.sf.jsqlparser.statement.select.SelectExpressionItem;
38+
import net.sf.jsqlparser.statement.select.SelectItemVisitor;
3139
import net.sf.jsqlparser.statement.select.SelectVisitor;
3240
import net.sf.jsqlparser.statement.select.SubSelect;
3341
import net.sf.jsqlparser.statement.select.WithItem;
3442

35-
public class ExpressionVisitorAdapter implements ExpressionVisitor, ItemsListVisitor {
43+
public class ExpressionVisitorAdapter implements ExpressionVisitor, ItemsListVisitor, PivotVisitor, SelectItemVisitor {
3644

3745
private SelectVisitor selectVisitor;
3846

@@ -44,16 +52,6 @@ public void setSelectVisitor(SelectVisitor selectVisitor) {
4452
this.selectVisitor = selectVisitor;
4553
}
4654

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-
5755
@Override
5856
public void visit(NullValue value) {
5957

@@ -216,8 +214,8 @@ public void visit(SubSelect subSelect) {
216214
}
217215
}
218216
subSelect.getSelectBody().accept(selectVisitor);
219-
if (pivotVisitor != null && subSelect.getPivot() != null) {
220-
subSelect.getPivot().accept(pivotVisitor);
217+
if (subSelect.getPivot() != null) {
218+
subSelect.getPivot().accept(this);
221219
}
222220
}
223221

@@ -388,4 +386,50 @@ public void visit(MySQLGroupConcat groupConcat) {
388386
}
389387
}
390388
}
389+
390+
@Override
391+
public void visit(Pivot pivot) {
392+
for (FunctionItem item : pivot.getFunctionItems()) {
393+
item.getFunction().accept(this);
394+
}
395+
for (Column col : pivot.getForColumns()) {
396+
col.accept(this);
397+
}
398+
if (pivot.getSingleInItems()!=null)
399+
for (SelectExpressionItem item : pivot.getSingleInItems()) {
400+
item.accept(this);
401+
}
402+
403+
if (pivot.getMultiInItems()!=null)
404+
for (ExpressionListItem item : pivot.getMultiInItems()) {
405+
item.getExpressionList().accept(this);
406+
}
407+
}
408+
409+
@Override
410+
public void visit(PivotXml pivot) {
411+
for (FunctionItem item : pivot.getFunctionItems()) {
412+
item.getFunction().accept(this);
413+
}
414+
for (Column col : pivot.getForColumns()) {
415+
col.accept(this);
416+
}
417+
if (pivot.getInSelect()!=null)
418+
pivot.getInSelect().accept(selectVisitor);
419+
}
420+
421+
@Override
422+
public void visit(AllColumns allColumns) {
423+
424+
}
425+
426+
@Override
427+
public void visit(AllTableColumns allTableColumns) {
428+
429+
}
430+
431+
@Override
432+
public void visit(SelectExpressionItem selectExpressionItem) {
433+
selectExpressionItem.getExpression().accept(this);
434+
}
391435
}

0 commit comments

Comments
 (0)