Package org.firebirdsql.jdbc.escape

## Class FBEscapedCallParser

- java.lang.Object
- - org.firebirdsql.jdbc.escape.FBEscapedCallParser

-     public class FBEscapedCallParser
      extends java.lang.Object

  Parser for escaped procedure call.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `FBEscapedCallParser​(FBEscapedParser.EscapeParserMode mode)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected int` | `getState()` | Returns the current state.
    `protected boolean` | `isInState​(int state)` | Returns if the system is in state `state`.
    `FBProcedureCall` | `parseCall​(java.lang.String sql)` | Converts escaped parts in the passed SQL to native representation.
    `protected java.lang.String` | `processParam​(java.lang.String param)` | Pre-process parameter.
    `protected boolean` | `processToken​(java.lang.String token)` | Process token.
    `protected void` | `setState​(int state)` | Sets the current state.
    `protected void` | `switchState​(char testChar)` | Test the character to be the state switching character and switches the state if necessary.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### FBEscapedCallParser

          public FBEscapedCallParser​(FBEscapedParser.EscapeParserMode mode)

  - ### Method Detail

    - #### getState

          protected int getState()

      Returns the current state.

    - #### setState

          protected void setState​(int state)

      Sets the current state.
      Parameters:
        `state` - to enter.
      Throws:
        `java.lang.IllegalStateException` - if the system cannot enter the desired state.

    - #### isInState

          protected boolean isInState​(int state)

      Returns if the system is in state `state`.
      Parameters:
        `state` - we're testing
      Returns:
        `true` if the system is in state `state`.

    - #### switchState

          protected void switchState​(char testChar)
                              throws FBSQLParseException

      Test the character to be the state switching character and switches the state if necessary.
      Parameters:
        `testChar` - character to test
      Throws:
        `FBSQLParseException`

    - #### parseCall

          public FBProcedureCall parseCall​(java.lang.String sql)
                                    throws java.sql.SQLException

      Converts escaped parts in the passed SQL to native representation.
      Parameters:
        `sql` - to parse
      Returns:
        native form of the `sql`.
      Throws:
        `java.sql.SQLException`

    - #### processToken

          protected boolean processToken​(java.lang.String token)

      Process token. This method detects procedure call keywords and sets appropriate flags. Also it detects procedure name and sets appropriate filed in the procedure call object.
      Parameters:
        `token` - token to process.
      Returns:
        `true` if token was understood and processed.

    - #### processParam

          protected java.lang.String processParam​(java.lang.String param)
                                           throws java.sql.SQLException

      Pre-process parameter. This method checks if there is escaped call inside and converts it to the native one.
      Parameters:
        `param` - parameter to process.
      Returns:
        processed parameter.
      Throws:
        `FBSQLParseException` - if parameter cannot be correctly parsed.
        `java.sql.SQLException`