Skip to content

Commit f71c307

Browse files
committed
fixes #143
some refactorings done
1 parent 3d34037 commit f71c307

File tree

1 file changed

+123
-55
lines changed

1 file changed

+123
-55
lines changed

src/main/java/net/sf/jsqlparser/util/TablesNamesFinder.java

Lines changed: 123 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,21 @@
3636

3737
import java.util.ArrayList;
3838
import java.util.List;
39+
import net.sf.jsqlparser.statement.SetStatement;
40+
import net.sf.jsqlparser.statement.StatementVisitor;
41+
import net.sf.jsqlparser.statement.Statements;
42+
import net.sf.jsqlparser.statement.alter.Alter;
43+
import net.sf.jsqlparser.statement.create.index.CreateIndex;
3944
import net.sf.jsqlparser.statement.create.table.CreateTable;
45+
import net.sf.jsqlparser.statement.create.view.CreateView;
46+
import net.sf.jsqlparser.statement.drop.Drop;
47+
import net.sf.jsqlparser.statement.execute.Execute;
48+
import net.sf.jsqlparser.statement.truncate.Truncate;
4049

4150
/**
4251
* Find all used tables within an select statement.
4352
*/
44-
public class TablesNamesFinder implements SelectVisitor, FromItemVisitor, ExpressionVisitor, ItemsListVisitor, SelectItemVisitor {
53+
public class TablesNamesFinder implements SelectVisitor, FromItemVisitor, ExpressionVisitor, ItemsListVisitor, SelectItemVisitor, StatementVisitor {
4554

4655
private List<String> tables;
4756
/**
@@ -59,11 +68,7 @@ public class TablesNamesFinder implements SelectVisitor, FromItemVisitor, Expres
5968
*/
6069
public List<String> getTableList(Delete delete) {
6170
init();
62-
tables.add(delete.getTable().getName());
63-
if (delete.getWhere() != null) {
64-
delete.getWhere().accept(this);
65-
}
66-
71+
delete.accept(this);
6772
return tables;
6873
}
6974

@@ -75,14 +80,7 @@ public List<String> getTableList(Delete delete) {
7580
*/
7681
public List<String> getTableList(Insert insert) {
7782
init();
78-
tables.add(insert.getTable().getName());
79-
if (insert.getItemsList() != null) {
80-
insert.getItemsList().accept(this);
81-
}
82-
if (insert.getSelect() != null) {
83-
visit(insert.getSelect());
84-
}
85-
83+
insert.accept(this);
8684
return tables;
8785
}
8886

@@ -94,16 +92,7 @@ public List<String> getTableList(Insert insert) {
9492
*/
9593
public List<String> getTableList(Replace replace) {
9694
init();
97-
tables.add(replace.getTable().getName());
98-
if (replace.getExpressions() != null) {
99-
for (Expression expression : replace.getExpressions()) {
100-
expression.accept(this);
101-
}
102-
}
103-
if (replace.getItemsList() != null) {
104-
replace.getItemsList().accept(this);
105-
}
106-
95+
replace.accept(this);
10796
return tables;
10897
}
10998

@@ -115,11 +104,11 @@ public List<String> getTableList(Replace replace) {
115104
*/
116105
public List<String> getTableList(Select select) {
117106
init();
118-
visit(select);
119-
107+
select.accept(this);
120108
return tables;
121109
}
122110

111+
@Override
123112
public void visit(Select select) {
124113
if (select.getWithItemsList() != null) {
125114
for (WithItem withItem : select.getWithItemsList()) {
@@ -137,46 +126,19 @@ public void visit(Select select) {
137126
*/
138127
public List<String> getTableList(Update update) {
139128
init();
140-
for (Table table : update.getTables()) {
141-
tables.add(table.getName());
142-
}
143-
if (update.getExpressions() != null) {
144-
for (Expression expression : update.getExpressions()) {
145-
expression.accept(this);
146-
}
147-
}
148-
149-
if (update.getFromItem() != null) {
150-
update.getFromItem().accept(this);
151-
}
152-
153-
if (update.getJoins() != null) {
154-
for (Join join : update.getJoins()) {
155-
join.getRightItem().accept(this);
156-
}
157-
}
158-
159-
if (update.getWhere() != null) {
160-
update.getWhere().accept(this);
161-
}
162-
129+
update.accept(this);
163130
return tables;
164131
}
165132

166133
public List<String> getTableList(CreateTable create) {
167134
init();
168-
tables.add(create.getTable().getFullyQualifiedName());
169-
if (create.getSelect() != null) {
170-
visit(create.getSelect());
171-
}
172-
135+
create.accept(this);
173136
return tables;
174137
}
175138

176139
public List<String> getTableList(Expression expr) {
177140
init();
178141
expr.accept(this);
179-
180142
return tables;
181143
}
182144

@@ -547,4 +509,110 @@ public void visit(KeepExpression aexpr) {
547509
@Override
548510
public void visit(MySQLGroupConcat groupConcat) {
549511
}
512+
513+
@Override
514+
public void visit(Delete delete) {
515+
tables.add(delete.getTable().getName());
516+
if (delete.getWhere() != null) {
517+
delete.getWhere().accept(this);
518+
}
519+
}
520+
521+
@Override
522+
public void visit(Update update) {
523+
for (Table table : update.getTables()) {
524+
tables.add(table.getName());
525+
}
526+
if (update.getExpressions() != null) {
527+
for (Expression expression : update.getExpressions()) {
528+
expression.accept(this);
529+
}
530+
}
531+
532+
if (update.getFromItem() != null) {
533+
update.getFromItem().accept(this);
534+
}
535+
536+
if (update.getJoins() != null) {
537+
for (Join join : update.getJoins()) {
538+
join.getRightItem().accept(this);
539+
}
540+
}
541+
542+
if (update.getWhere() != null) {
543+
update.getWhere().accept(this);
544+
}
545+
}
546+
547+
@Override
548+
public void visit(Insert insert) {
549+
tables.add(insert.getTable().getName());
550+
if (insert.getItemsList() != null) {
551+
insert.getItemsList().accept(this);
552+
}
553+
if (insert.getSelect() != null) {
554+
visit(insert.getSelect());
555+
}
556+
}
557+
558+
@Override
559+
public void visit(Replace replace) {
560+
tables.add(replace.getTable().getName());
561+
if (replace.getExpressions() != null) {
562+
for (Expression expression : replace.getExpressions()) {
563+
expression.accept(this);
564+
}
565+
}
566+
if (replace.getItemsList() != null) {
567+
replace.getItemsList().accept(this);
568+
}
569+
}
570+
571+
@Override
572+
public void visit(Drop drop) {
573+
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
574+
}
575+
576+
@Override
577+
public void visit(Truncate truncate) {
578+
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
579+
}
580+
581+
@Override
582+
public void visit(CreateIndex createIndex) {
583+
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
584+
}
585+
586+
@Override
587+
public void visit(CreateTable create) {
588+
tables.add(create.getTable().getFullyQualifiedName());
589+
if (create.getSelect() != null) {
590+
create.getSelect().accept(this);
591+
}
592+
}
593+
594+
@Override
595+
public void visit(CreateView createView) {
596+
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
597+
}
598+
599+
@Override
600+
public void visit(Alter alter) {
601+
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
602+
}
603+
604+
@Override
605+
public void visit(Statements stmts) {
606+
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
607+
}
608+
609+
@Override
610+
public void visit(Execute execute) {
611+
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
612+
}
613+
614+
@Override
615+
public void visit(SetStatement set) {
616+
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
617+
}
550618
}

0 commit comments

Comments
 (0)