com.agimatec.sql
Class SQLStringGenerator

java.lang.Object
  extended by com.agimatec.sql.SQLClauseParserAbstract
      extended by com.agimatec.sql.SQLStringGenerator

public class SQLStringGenerator
extends SQLClauseParserAbstract

Generates an SQL String (with parameters) from the given SQL-statement (containing parameter markers) and a given parameter array. Also handles string constants correctly.

Caution: Uses Oracle Date String format!

$Author: stumm $


Field Summary
protected  int paramIdx
           
protected  java.util.List params
           
 
Fields inherited from class com.agimatec.sql.SQLClauseParserAbstract
INPUT_BRACKET_CLOSE, INPUT_BRACKET_OPEN, INPUT_PARAM_INDICATOR, INPUT_TEXT_INDICATOR, inputStream, position, RESULT_PARAM_INDICATOR
 
Constructor Summary
SQLStringGenerator(java.lang.String input, java.io.Writer output, java.util.List aParams)
           
 
Method Summary
protected  void addParseParamBracket(java.lang.String aString)
           
protected  void addParseParamExpression(java.lang.String aString)
          Add the parameter identified by aString to the result.
 void appendSQLParamString(java.lang.StringBuilder buf, java.lang.Object value)
           
static java.lang.String asProcedureCall(java.lang.String sql)
          convert the sql to be a valid PL/SQL Stored Procudure call.
protected  void foundParamMarker()
          Parameter marker found at current position.
protected  void handleParam(java.lang.Object aValue)
           
protected  java.lang.String toSQLParamString(java.lang.Object value)
           
 
Methods inherited from class com.agimatec.sql.SQLClauseParserAbstract
addParseExpression, foundParamExpression, foundParamOpenBracket, getResultWriter, handleExpression, initForParse, isParamExpressionTerminator, parse, signalMissingToken, signalUnexpectedToken, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

params

protected final java.util.List params

paramIdx

protected int paramIdx
Constructor Detail

SQLStringGenerator

public SQLStringGenerator(java.lang.String input,
                          java.io.Writer output,
                          java.util.List aParams)
Parameters:
input - e.g. SELECT * FROM TABLE WHERE OID = ? AND THEDATE = ?
output - a writer for the result
aParams - e.g. a List containing a String for OID and a Date for THEDATE. output contains the following after the parse() methods has been executed: SELECT * FROM TABLE WHERE OID = 'oidvalue' AND THEDATE = to_date('datevalue', 'YYYY-MM-DD')
Method Detail

addParseParamExpression

protected void addParseParamExpression(java.lang.String aString)
Add the parameter identified by aString to the result.

Specified by:
addParseParamExpression in class SQLClauseParserAbstract

addParseParamBracket

protected void addParseParamBracket(java.lang.String aString)
Specified by:
addParseParamBracket in class SQLClauseParserAbstract

foundParamMarker

protected void foundParamMarker()
                         throws java.io.IOException
Parameter marker found at current position. Parse the parameter expression.

Overrides:
foundParamMarker in class SQLClauseParserAbstract
Throws:
java.io.IOException

handleParam

protected void handleParam(java.lang.Object aValue)
                    throws java.io.IOException
Throws:
java.io.IOException

toSQLParamString

protected java.lang.String toSQLParamString(java.lang.Object value)

appendSQLParamString

public void appendSQLParamString(java.lang.StringBuilder buf,
                                 java.lang.Object value)

asProcedureCall

public static java.lang.String asProcedureCall(java.lang.String sql)
convert the sql to be a valid PL/SQL Stored Procudure call. Oracle expects different SQL than the JDBC standard. JDBC Standard: "call " Oracle: "begin ;end;"

Parameters:
sql -
Returns:
the sql decorated to be a valid procedure call.


Copyright © 2008-2012. All Rights Reserved.