@Override
  public RewrittenStatement rewrite(final String sql, final Binding params,
      final StatementContext ctx)
  {
    final ParsedStatement stmt = new ParsedStatement();
    try {
      final String parsedSql = parseString(sql, stmt, params);
      return new MyRewrittenStatement(parsedSql, stmt, ctx);
    } catch (IllegalArgumentException e) {
      throw new UnableToCreateStatementException(
          "Exception parsing for named parameter replacement", e, ctx);
    }

  }
@Override
  public RewrittenStatement rewrite(final String sql, final Binding params,
      final StatementContext ctx)
  {
    final ParsedStatement stmt = new ParsedStatement();
    try {
      final String parsedSql = parseString(sql, stmt, params);
      return new MyRewrittenStatement(parsedSql, stmt, ctx);
    } catch (IllegalArgumentException e) {
      throw new UnableToCreateStatementException(
          "Exception parsing for named parameter replacement", e, ctx);
    }

  }
@ Override public RewrittenStatement rewrite ( final String sql , final Binding params , final StatementContext ctx ) { final ParsedStatement stmt = new ParsedStatement ( ) ; try { final String parsedSql = parseString ( sql , stmt , params ) ; return new MyRewrittenStatement ( parsedSql , stmt , ctx ) ; } catch ( IllegalArgumentException e ) { throw new UnableToCreateStatementException ( "Exception parsing for named parameter replacement" , e , ctx ) ; } }
Munge up the SQL as desired. Responsible for figuring out ow to bind any
arguments in to the resultant prepared statement.

@param sql The SQL to rewrite
@param params contains the arguments which have been bound to this statement.
@param ctx The statement context for the statement being executed
@return somethign which can provde the actual SQL to prepare a statement from
and which can bind the correct arguments to that prepared statement
Munge up the SQL as desired . Responsible for figuring out ow to bind any arguments in to the resultant prepared statement .