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
`FBEscapedCallParser​(FBEscapedParser.EscapeParserMode mode)`

### Method Summary

All Methods Instance Methods Concrete Methods
`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`