Skip to content

Commit 6fd842b

Browse files
doc: document the new Visitors
Signed-off-by: Andreas Reichel <[email protected]>
1 parent 7f8aace commit 6fd842b

File tree

3 files changed

+16
-89
lines changed

3 files changed

+16
-89
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Assertions.assertEquals("b", b.getColumnName());
4646
}
4747
```
4848

49-
JSQLParser-4.9 is the last JDK8 compatible version and any future development will depend on JDK11.
49+
JSQLParser-4.9 is the last JDK8 compatible version. The upcoming JSQLParser-5.0 will depend on JDK11 and introduces API breaking changes to the AST Visitors. Please see the Migration Guide for the details.
5050

5151
## [Supported Grammar and Syntax](https://jsqlparser.github.io/JSqlParser/syntax.html)
5252

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

Lines changed: 0 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1707,79 +1707,4 @@ public <S> StringBuilder visit(LambdaExpression lambdaExpression, S context) {
17071707
lambdaExpression.getExpression().accept(this, context);
17081708
return buffer;
17091709
}
1710-
1711-
public void visit(ArrayExpression array) {
1712-
visit(array, null);
1713-
}
1714-
1715-
public void visit(ArrayConstructor aThis) {
1716-
visit(aThis, null);
1717-
}
1718-
1719-
1720-
public void visit(VariableAssignment var) {
1721-
visit(var, null);
1722-
}
1723-
1724-
public void visit(XMLSerializeExpr expr) {
1725-
visit(expr, null);
1726-
}
1727-
1728-
public void visit(TimezoneExpression var) {
1729-
visit(var, null);
1730-
}
1731-
1732-
public void visit(JsonAggregateFunction expression) {
1733-
visit(expression, null);
1734-
}
1735-
1736-
public void visit(JsonFunction expression) {
1737-
visit(expression, null);
1738-
}
1739-
1740-
public void visit(ConnectByRootOperator connectByRootOperator) {
1741-
visit(connectByRootOperator, null);
1742-
}
1743-
1744-
public void visit(OracleNamedFunctionParameter oracleNamedFunctionParameter) {
1745-
visit(oracleNamedFunctionParameter, null);
1746-
}
1747-
1748-
public void visit(AllColumns allColumns) {
1749-
visit(allColumns, null);
1750-
}
1751-
1752-
public void visit(AllTableColumns allTableColumns) {
1753-
visit(allTableColumns, null);
1754-
}
1755-
1756-
public void visit(AllValue allValue) {
1757-
visit(allValue, null);
1758-
}
1759-
1760-
public void visit(IsDistinctExpression isDistinctExpression) {
1761-
visit(isDistinctExpression, null);
1762-
}
1763-
1764-
public void visit(GeometryDistance geometryDistance) {
1765-
visit(geometryDistance, null);
1766-
}
1767-
1768-
public void visit(TSQLLeftJoin tsqlLeftJoin) {
1769-
visit(tsqlLeftJoin, null);
1770-
}
1771-
1772-
public void visit(TSQLRightJoin tsqlRightJoin) {
1773-
visit(tsqlRightJoin, null);
1774-
}
1775-
1776-
public void visit(StructType structType) {
1777-
visit(structType, null);
1778-
}
1779-
1780-
public void visit(LambdaExpression lambdaExpression) {
1781-
visit(lambdaExpression, null);
1782-
}
1783-
1784-
17851710
}

src/site/sphinx/usage.rst

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -192,36 +192,38 @@ Traverse the Java Object Tree using the Visitor Patterns:
192192
193193
// Define an Expression Visitor reacting on any Expression
194194
// Overwrite the visit() methods for each Expression Class
195-
ExpressionVisitorAdapter expressionVisitorAdapter = new ExpressionVisitorAdapter() {
196-
public void visit(EqualsTo equalsTo) {
197-
equalsTo.getLeftExpression().accept(this);
198-
equalsTo.getRightExpression().accept(this);
195+
ExpressionVisitorAdapter<Void> expressionVisitorAdapter = new ExpressionVisitorAdapter<>() {
196+
public <S> Void visit(EqualsTo equalsTo, S context) {
197+
equalsTo.getLeftExpression().accept(this, context);
198+
equalsTo.getRightExpression().accept(this, context);
199+
return null;
199200
}
200-
public void visit(Column column) {
201+
public <S> Void visit(Column column, S context) {
201202
System.out.println("Found a Column " + column.getColumnName());
203+
return null;
202204
}
203205
};
204206
205207
// Define a Select Visitor reacting on a Plain Select invoking the Expression Visitor on the Where Clause
206-
SelectVisitorAdapter selectVisitorAdapter = new SelectVisitorAdapter() {
208+
SelectVisitorAdapter<Void> selectVisitorAdapter = new SelectVisitorAdapter<>() {
207209
@Override
208-
public void visit(PlainSelect plainSelect) {
209-
plainSelect.getWhere().accept(expressionVisitorAdapter);
210+
public <S> Void visit(PlainSelect plainSelect, S context) {
211+
return plainSelect.getWhere().accept(expressionVisitorAdapter, context);
210212
}
211213
};
212214
213215
// Define a Statement Visitor for dispatching the Statements
214-
StatementVisitorAdapter statementVisitor = new StatementVisitorAdapter() {
215-
public void visit(Select select) {
216-
select.getSelectBody().accept(selectVisitorAdapter);
216+
StatementVisitorAdapter<Void> statementVisitor = new StatementVisitorAdapter<>() {
217+
public <S> Void visit(Select select, S context) {
218+
return select.getSelectBody().accept(selectVisitorAdapter, context);
217219
}
218220
};
219221
220222
String sqlStr="select 1 from dual where a=b";
221223
Statement stmt = CCJSqlParserUtil.parse(sqlStr);
222224
223-
// Invoke the Statement Visitor
224-
stmt.accept(statementVisitor);
225+
// Invoke the Statement Visitor without a context
226+
stmt.accept(statementVisitor, null);
225227
226228
Find Table Names
227229
==============================

0 commit comments

Comments
 (0)