Class StatementDetector

java.lang.Object
org.firebirdsql.jaybird.parser.StatementDetector
All Implemented Interfaces:
TokenVisitor

@InternalApi public final class StatementDetector extends Object implements TokenVisitor
Detects the type of statement, and - optionally - whether a DML statement has a RETURNING clause.

If the detected statement type is UPDATE, DELETE, INSERT, UPDATE OR INSERT and MERGE, it identifies the affected table and - optionally - whether or not a RETURNING clause is present (delegated to a ReturningClauseDetector).

The types of statements detected are informed by the needs of Jaybird, and may change between point releases.

Since:
5
Author:
Mark Rotteveel
  • Constructor Details

    • StatementDetector

      public StatementDetector()
      Detect statement type and returning clause.
      See Also:
    • StatementDetector

      public StatementDetector(boolean detectReturning)
      Detect statement type and - optionally - returning clause.
      Parameters:
      detectReturning - true detect returning clause, false do not detect returning clause
  • Method Details

    • determineLocalStatementType

      public static LocalStatementType determineLocalStatementType(String sql)
      Determines the local statement type of sql.

      The return values of this method are decided by the needs of Jaybird, and do not necessarily cover all statement types, and they may change between point releases.

      Parameters:
      sql - statement text
      Returns:
      local statement type
      Since:
      6
    • visitToken

      public void visitToken(Token token, VisitorRegistrar visitorRegistrar)
      Description copied from interface: TokenVisitor
      Notifies the visitor of a token.
      Specified by:
      visitToken in interface TokenVisitor
      Parameters:
      token - Token
      visitorRegistrar - Visitor registrar (can be used to remove itself, or add other visitors)
    • complete

      public void complete(VisitorRegistrar visitorRegistrar)
      Description copied from interface: TokenVisitor
      Signals that the last token was produced and the statement text was fully parsed.
      Specified by:
      complete in interface TokenVisitor
      Parameters:
      visitorRegistrar - Visitor registrar (can be used to remove itself, or add other visitors)
    • toStatementIdentification

      public StatementIdentification toStatementIdentification()
    • getStatementType

      public LocalStatementType getStatementType()
      Returns:
      detected statement type, UNKNOWN when no tokens have been received (nothing was parsed)