Skip to content

Commit 2b7909c

Browse files
authored
let all deparsers extend AbstractDeParser (#1007)
* let all deparsers extend AbstractDeParser * * add SelectDeParser(StringBuilder) * remove overriding setters/getters of buffer #1007
1 parent ea88e1b commit 2b7909c

26 files changed

+290
-384
lines changed

src/main/java/net/sf/jsqlparser/util/deparser/AbstractDeParser.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
/**
1313
* A base for a Statement DeParser
14+
*
1415
* @param <S> the type of statement this DeParser supports
1516
*/
1617
abstract class AbstractDeParser<S> {
@@ -20,8 +21,17 @@ protected AbstractDeParser(StringBuilder buffer) {
2021
this.buffer = buffer;
2122
}
2223

24+
public StringBuilder getBuffer() {
25+
return buffer;
26+
}
27+
28+
public void setBuffer(StringBuilder buffer) {
29+
this.buffer = buffer;
30+
}
31+
2332
/**
2433
* DeParses the given statement into the buffer
34+
*
2535
* @param statement the statement to deparse
2636
*/
2737
abstract void deParse(S statement);

src/main/java/net/sf/jsqlparser/util/deparser/AlterDeParser.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,15 @@
1111

1212
import net.sf.jsqlparser.statement.alter.Alter;
1313

14-
public class AlterDeParser {
15-
16-
protected StringBuilder buffer;
14+
public class AlterDeParser extends AbstractDeParser<Alter> {
1715

1816
public AlterDeParser(StringBuilder buffer) {
19-
this.buffer = buffer;
17+
super(buffer);
2018
}
2119

20+
@Override
2221
public void deParse(Alter alter) {
2322
buffer.append(alter.toString());
2423
}
2524

26-
public StringBuilder getBuffer() {
27-
return buffer;
28-
}
29-
30-
public void setBuffer(StringBuilder buffer) {
31-
this.buffer = buffer;
32-
}
3325
}

src/main/java/net/sf/jsqlparser/util/deparser/AlterViewDeParser.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,24 @@
1313
import net.sf.jsqlparser.statement.select.PlainSelect;
1414
import net.sf.jsqlparser.statement.select.SelectVisitor;
1515

16-
public class AlterViewDeParser {
16+
public class AlterViewDeParser extends AbstractDeParser<AlterView> {
1717

18-
protected StringBuilder buffer;
1918
private SelectVisitor selectVisitor;
2019

2120
public AlterViewDeParser(StringBuilder buffer) {
22-
SelectDeParser selectDeParser = new SelectDeParser();
23-
selectDeParser.setBuffer(buffer);
21+
super(buffer);
22+
SelectDeParser selectDeParser = new SelectDeParser(buffer);
2423
ExpressionDeParser expressionDeParser = new ExpressionDeParser(selectDeParser, buffer);
2524
selectDeParser.setExpressionVisitor(expressionDeParser);
2625
selectVisitor = selectDeParser;
27-
this.buffer = buffer;
2826
}
2927

3028
public AlterViewDeParser(StringBuilder buffer, SelectVisitor selectVisitor) {
31-
this.buffer = buffer;
29+
super(buffer);
3230
this.selectVisitor = selectVisitor;
3331
}
3432

33+
@Override
3534
public void deParse(AlterView alterView) {
3635
if (alterView.isUseReplace()) {
3736
buffer.append("REPLACE ");
@@ -47,11 +46,4 @@ public void deParse(AlterView alterView) {
4746
alterView.getSelectBody().accept(selectVisitor);
4847
}
4948

50-
public StringBuilder getBuffer() {
51-
return buffer;
52-
}
53-
54-
public void setBuffer(StringBuilder buffer) {
55-
this.buffer = buffer;
56-
}
5749
}

src/main/java/net/sf/jsqlparser/util/deparser/CreateIndexDeParser.java

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,13 @@
1414
import net.sf.jsqlparser.statement.create.index.CreateIndex;
1515
import net.sf.jsqlparser.statement.create.table.Index;
1616

17-
public class CreateIndexDeParser {
18-
19-
protected StringBuilder buffer;
17+
public class CreateIndexDeParser extends AbstractDeParser<CreateIndex> {
2018

2119
public CreateIndexDeParser(StringBuilder buffer) {
22-
this.buffer = buffer;
20+
super(buffer);
2321
}
2422

23+
@Override
2524
public void deParse(CreateIndex createIndex) {
2625
Index index = createIndex.getIndex();
2726

@@ -45,10 +44,9 @@ public void deParse(CreateIndex createIndex) {
4544

4645
if (index.getColumnsNames() != null) {
4746
buffer.append(" (");
48-
buffer.append(
49-
index.getColumnWithParams().stream()
50-
.map(cp -> cp.columnName + (cp.getParams() != null ? " " + String.join(" ", cp.getParams()) : "")).collect(joining(", "))
51-
);
47+
buffer.append(index.getColumnWithParams().stream()
48+
.map(cp -> cp.columnName + (cp.getParams() != null ? " " + String.join(" ", cp.getParams()) : ""))
49+
.collect(joining(", ")));
5250
buffer.append(")");
5351
}
5452

@@ -59,12 +57,4 @@ public void deParse(CreateIndex createIndex) {
5957
}
6058
}
6159

62-
public StringBuilder getBuffer() {
63-
return buffer;
64-
}
65-
66-
public void setBuffer(StringBuilder buffer) {
67-
this.buffer = buffer;
68-
}
69-
7060
}

src/main/java/net/sf/jsqlparser/util/deparser/CreateTableDeParser.java

Lines changed: 26 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,26 @@
1717
import net.sf.jsqlparser.statement.select.PlainSelect;
1818
import net.sf.jsqlparser.statement.select.Select;
1919

20+
public class CreateTableDeParser extends AbstractDeParser<CreateTable> {
2021

21-
public class CreateTableDeParser {
22-
23-
protected StringBuilder buffer;
2422
private StatementDeParser statementDeParser;
2523

2624
public CreateTableDeParser(StringBuilder buffer) {
27-
this.buffer = buffer;
25+
super(buffer);
2826
}
2927

3028
public CreateTableDeParser(StatementDeParser statementDeParser, StringBuilder buffer) {
31-
this.buffer = buffer;
29+
super(buffer);
3230
this.statementDeParser = statementDeParser;
3331
}
3432

35-
33+
@Override
3634
public void deParse(CreateTable createTable) {
3735
buffer.append("CREATE ");
3836
if (createTable.isUnlogged()) {
3937
buffer.append("UNLOGGED ");
4038
}
41-
String params = PlainSelect.
42-
getStringList(createTable.getCreateOptionsStrings(), false, false);
39+
String params = PlainSelect.getStringList(createTable.getCreateOptionsStrings(), false, false);
4340
if (!"".equals(params)) {
4441
buffer.append(params).append(' ');
4542
}
@@ -50,35 +47,33 @@ public void deParse(CreateTable createTable) {
5047
}
5148
buffer.append(createTable.getTable().getFullyQualifiedName());
5249

53-
if (createTable.getColumnDefinitions() != null) {
54-
buffer.append(" (");
55-
for (Iterator<ColumnDefinition> iter = createTable.getColumnDefinitions().iterator(); iter.
56-
hasNext();) {
57-
ColumnDefinition columnDefinition = iter.next();
58-
buffer.append(columnDefinition.getColumnName());
59-
buffer.append(" ");
60-
buffer.append(columnDefinition.getColDataType().toString());
61-
if (columnDefinition.getColumnSpecs() != null) {
62-
for (String s : columnDefinition.getColumnSpecs()) {
63-
buffer.append(" ");
64-
buffer.append(s);
65-
}
50+
if (createTable.getColumnDefinitions() != null) {
51+
buffer.append(" (");
52+
for (Iterator<ColumnDefinition> iter = createTable.getColumnDefinitions().iterator(); iter.hasNext();) {
53+
ColumnDefinition columnDefinition = iter.next();
54+
buffer.append(columnDefinition.getColumnName());
55+
buffer.append(" ");
56+
buffer.append(columnDefinition.getColDataType().toString());
57+
if (columnDefinition.getColumnSpecs() != null) {
58+
for (String s : columnDefinition.getColumnSpecs()) {
59+
buffer.append(" ");
60+
buffer.append(s);
6661
}
62+
}
6763

68-
if (iter.hasNext()) {
69-
buffer.append(", ");
70-
}
64+
if (iter.hasNext()) {
65+
buffer.append(", ");
7166
}
67+
}
7268

73-
if (createTable.getIndexes() != null) {
74-
for (Iterator<Index> iter = createTable.getIndexes().iterator(); iter.hasNext();) {
75-
buffer.append(", ");
76-
Index index = iter.next();
77-
buffer.append(index.toString());
78-
}
69+
if (createTable.getIndexes() != null) {
70+
for (Index index : createTable.getIndexes()) {
71+
buffer.append(", ");
72+
buffer.append(index.toString());
7973
}
74+
}
8075

81-
buffer.append(")");
76+
buffer.append(")");
8277
}
8378

8479
params = PlainSelect.getStringList(createTable.getTableOptionsStrings(), false, false);
@@ -102,11 +97,4 @@ public void deParse(CreateTable createTable) {
10297
}
10398
}
10499

105-
public StringBuilder getBuffer() {
106-
return buffer;
107-
}
108-
109-
public void setBuffer(StringBuilder buffer) {
110-
this.buffer = buffer;
111-
}
112100
}

src/main/java/net/sf/jsqlparser/util/deparser/CreateViewDeParser.java

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,37 +16,39 @@
1616
import net.sf.jsqlparser.statement.select.SelectVisitor;
1717
import net.sf.jsqlparser.statement.select.WithItem;
1818

19-
public class CreateViewDeParser {
19+
public class CreateViewDeParser extends AbstractDeParser<CreateView> {
2020

21-
protected StringBuilder buffer;
2221
private final SelectVisitor selectVisitor;
2322

2423
public CreateViewDeParser(StringBuilder buffer) {
24+
super(buffer);
2525
SelectDeParser selectDeParser = new SelectDeParser();
2626
selectDeParser.setBuffer(buffer);
2727
ExpressionDeParser expressionDeParser = new ExpressionDeParser(selectDeParser, buffer);
2828
selectDeParser.setExpressionVisitor(expressionDeParser);
2929
selectVisitor = selectDeParser;
30-
this.buffer = buffer;
3130
}
3231

3332
public CreateViewDeParser(StringBuilder buffer, SelectVisitor selectVisitor) {
34-
this.buffer = buffer;
33+
super(buffer);
3534
this.selectVisitor = selectVisitor;
3635
}
3736

37+
@Override
3838
public void deParse(CreateView createView) {
3939
buffer.append("CREATE ");
4040
if (createView.isOrReplace()) {
4141
buffer.append("OR REPLACE ");
4242
}
4343
switch (createView.getForce()) {
44-
case FORCE:
45-
buffer.append("FORCE ");
46-
break;
47-
case NO_FORCE:
48-
buffer.append("NO FORCE ");
49-
break;
44+
case FORCE:
45+
buffer.append("FORCE ");
46+
break;
47+
case NO_FORCE:
48+
buffer.append("NO FORCE ");
49+
break;
50+
case NONE:
51+
break;
5052
}
5153
if (createView.getTemporary() != TemporaryOption.NONE) {
5254
buffer.append(createView.getTemporary().name()).append(" ");
@@ -81,11 +83,4 @@ public void deParse(CreateView createView) {
8183
}
8284
}
8385

84-
public StringBuilder getBuffer() {
85-
return buffer;
86-
}
87-
88-
public void setBuffer(StringBuilder buffer) {
89-
this.buffer = buffer;
90-
}
9186
}

src/main/java/net/sf/jsqlparser/util/deparser/DeclareStatementDeParser.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,16 @@
1313
import net.sf.jsqlparser.statement.DeclareStatement;
1414
import net.sf.jsqlparser.statement.DeclareType;
1515

16-
public class DeclareStatementDeParser {
16+
public class DeclareStatementDeParser extends AbstractDeParser<DeclareStatement> {
1717

18-
protected StringBuilder buffer;
1918
private ExpressionVisitor expressionVisitor;
2019

2120
public DeclareStatementDeParser(ExpressionVisitor expressionVisitor, StringBuilder buffer) {
22-
this.buffer = buffer;
21+
super(buffer);
2322
this.expressionVisitor = expressionVisitor;
2423
}
2524

26-
public StringBuilder getBuffer() {
27-
return buffer;
28-
}
29-
30-
public void setBuffer(StringBuilder buffer) {
31-
this.buffer = buffer;
32-
}
33-
25+
@Override
3426
public void deParse(DeclareStatement declare) {
3527
buffer.append("DECLARE ");
3628

src/main/java/net/sf/jsqlparser/util/deparser/DeleteDeParser.java

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,38 +10,32 @@
1010
package net.sf.jsqlparser.util.deparser;
1111

1212
import static java.util.stream.Collectors.joining;
13+
1314
import net.sf.jsqlparser.expression.ExpressionVisitor;
1415
import net.sf.jsqlparser.expression.ExpressionVisitorAdapter;
16+
import net.sf.jsqlparser.schema.Table;
1517
import net.sf.jsqlparser.statement.delete.Delete;
1618
import net.sf.jsqlparser.statement.select.Join;
1719

18-
public class DeleteDeParser {
20+
public class DeleteDeParser extends AbstractDeParser<Delete> {
1921

20-
protected StringBuilder buffer = new StringBuilder();
2122
private ExpressionVisitor expressionVisitor = new ExpressionVisitorAdapter();
2223

2324
public DeleteDeParser() {
25+
super(new StringBuilder());
2426
}
2527

2628
public DeleteDeParser(ExpressionVisitor expressionVisitor, StringBuilder buffer) {
27-
this.buffer = buffer;
29+
super(buffer);
2830
this.expressionVisitor = expressionVisitor;
2931
}
3032

31-
public StringBuilder getBuffer() {
32-
return buffer;
33-
}
34-
35-
public void setBuffer(StringBuilder buffer) {
36-
this.buffer = buffer;
37-
}
38-
33+
@Override
3934
public void deParse(Delete delete) {
4035
buffer.append("DELETE");
41-
if (delete.getTables() != null && delete.getTables().size() > 0) {
42-
buffer.append(delete.getTables().stream()
43-
.map(t -> t.getFullyQualifiedName())
44-
.collect(joining(", ", " " , "")));
36+
if (delete.getTables() != null && !delete.getTables().isEmpty()) {
37+
buffer.append(
38+
delete.getTables().stream().map(Table::getFullyQualifiedName).collect(joining(", ", " ", "")));
4539
}
4640
buffer.append(" FROM ").append(delete.getTable().toString());
4741

0 commit comments

Comments
 (0)