Skip to content

Commit 287ee18

Browse files
committed
refactor: let every statement class carry an AST node
The statement classes that implemented Statement alone now extend ASTNodeAccessImpl, as Select and Import already did, so a parsed statement can hold the node that records its source range. Nothing links them yet.
1 parent 58fc796 commit 287ee18

118 files changed

Lines changed: 245 additions & 118 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎src/main/java/net/sf/jsqlparser/statement/AssertStatement.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import net.sf.jsqlparser.expression.Expression;
1313
import net.sf.jsqlparser.expression.StringValue;
14+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
1415

1516
import java.util.function.Consumer;
1617

@@ -22,7 +23,7 @@
2223
* "https://cloud.google.com/bigquery/docs/reference/standard-sql/debugging-statements">Debugging
2324
* statements</a>
2425
*/
25-
public class AssertStatement implements Statement {
26+
public class AssertStatement extends ASTNodeAccessImpl implements Statement {
2627
private Expression expression;
2728
private StringValue description;
2829

‎src/main/java/net/sf/jsqlparser/statement/AttachStatement.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
package net.sf.jsqlparser.statement;
1111

12+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
1213
import net.sf.jsqlparser.statement.select.PlainSelect;
1314

1415
import java.util.List;
@@ -19,7 +20,7 @@
1920
*
2021
* @see <a href="https://duckdb.org/docs/stable/sql/statements/attach">ATTACH</a>
2122
*/
22-
public class AttachStatement implements Statement {
23+
public class AttachStatement extends ASTNodeAccessImpl implements Statement {
2324
private String databasePath;
2425
private String alias;
2526
private boolean usingDatabaseKeyword;

‎src/main/java/net/sf/jsqlparser/statement/Block.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@
1010
package net.sf.jsqlparser.statement;
1111

1212
import java.util.function.Consumer;
13+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
1314

14-
public class Block implements Statement {
15+
public class Block extends ASTNodeAccessImpl implements Statement {
1516
private boolean hasSemicolonAfterEnd = false;
1617

1718
private Statements statements;

‎src/main/java/net/sf/jsqlparser/statement/Commit.java‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
*/
1010
package net.sf.jsqlparser.statement;
1111

12-
public class Commit implements Statement {
12+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
13+
14+
public class Commit extends ASTNodeAccessImpl implements Statement {
1315
private TransactionKeyword keyword;
1416
private TransactionChain chain;
1517

‎src/main/java/net/sf/jsqlparser/statement/ConnectStatement.java‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
*/
1010
package net.sf.jsqlparser.statement;
1111

12+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
13+
1214
/**
1315
* DuckDB's {@code CONNECT target [AS alias]}, which routes the session's queries to a remote
1416
* database.
1517
*/
16-
public class ConnectStatement implements Statement {
18+
public class ConnectStatement extends ASTNodeAccessImpl implements Statement {
1719
private String target;
1820
private String alias;
1921

‎src/main/java/net/sf/jsqlparser/statement/CopyStatement.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
package net.sf.jsqlparser.statement;
1111

1212
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
13+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
1314
import net.sf.jsqlparser.schema.Column;
1415
import net.sf.jsqlparser.schema.Table;
1516
import net.sf.jsqlparser.statement.select.PlainSelect;
@@ -25,7 +26,7 @@
2526
*
2627
* @see <a href="https://duckdb.org/docs/stable/sql/statements/copy">COPY</a>
2728
*/
28-
public class CopyStatement implements Statement {
29+
public class CopyStatement extends ASTNodeAccessImpl implements Statement {
2930
private Table table;
3031
private ExpressionList<Column> columns;
3132
private Select select;

‎src/main/java/net/sf/jsqlparser/statement/CreateFunctionalStatement.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@
1515
import java.util.List;
1616
import java.util.Optional;
1717
import java.util.function.Consumer;
18+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
1819
import net.sf.jsqlparser.statement.create.function.FunctionReturnType;
1920
import net.sf.jsqlparser.statement.create.table.TableElement;
2021

2122
/**
2223
* A base for the declaration of function like statements
2324
*/
24-
public abstract class CreateFunctionalStatement implements Statement {
25+
public abstract class CreateFunctionalStatement extends ASTNodeAccessImpl implements Statement {
2526

2627
private String kind;
2728
private boolean orReplace = false;

‎src/main/java/net/sf/jsqlparser/statement/DeallocateStatement.java‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99
*/
1010
package net.sf.jsqlparser.statement;
1111

12+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
13+
1214
/**
1315
* {@code DEALLOCATE [PREPARE] name}, which drops a statement prepared by {@link PrepareStatement}.
1416
*/
15-
public class DeallocateStatement implements Statement {
17+
public class DeallocateStatement extends ASTNodeAccessImpl implements Statement {
1618
private String name;
1719
private boolean usingPrepareKeyword;
1820

‎src/main/java/net/sf/jsqlparser/statement/DeclareStatement.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@
1818

1919
import net.sf.jsqlparser.expression.Expression;
2020
import net.sf.jsqlparser.expression.UserVariable;
21+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
2122
import net.sf.jsqlparser.statement.create.table.ColDataType;
2223
import net.sf.jsqlparser.statement.create.table.ColumnDefinition;
2324

24-
public final class DeclareStatement implements Statement {
25+
public final class DeclareStatement extends ASTNodeAccessImpl implements Statement {
2526

2627
private UserVariable userVariable = null;
2728
private DeclareType declareType = DeclareType.TYPE;

‎src/main/java/net/sf/jsqlparser/statement/DescribeStatement.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@
99
*/
1010
package net.sf.jsqlparser.statement;
1111

12+
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
1213
import net.sf.jsqlparser.schema.Table;
1314
import net.sf.jsqlparser.statement.select.Select;
1415

15-
public class DescribeStatement implements Statement {
16+
public class DescribeStatement extends ASTNodeAccessImpl implements Statement {
1617

1718
private Table table;
1819
private Select select;

0 commit comments

Comments
 (0)