com.is.jrf
Class OracleDatabasePolicy

java.lang.Object
  |
  +--com.is.jrf.OracleDatabasePolicy
All Implemented Interfaces:
DatabasePolicy

public class OracleDatabasePolicy
extends java.lang.Object
implements DatabasePolicy

Instances of this class perform Oracle-specific logic and return Oracle-specific information.


Constructor Summary
OracleDatabasePolicy()
           
 
Method Summary
 java.lang.String autoIncrementIdentifier()
          Oracle has Sequences for generating an arbitrary integer primary key so AUTO INCREMENT is not needed here.
 void createSequence(AbstractDomain domain, JDBCHelper aJDBCHelper)
          This is called when creating a table that has a SEQUENCED_PRIMARY_KEY.
 java.lang.String currentTimestampSQL()
          This should return the the SQL to use to have the database return the current timestamp.
 java.lang.Long findAutoIncrementId(java.lang.String tableName, java.lang.String columnName, JDBCHelper aJDBCHelper)
          This method throws an exception since it should never be called.
 java.lang.String formatDate(java.sql.Date sqlDate)
          The result of this is used in SQL.
 java.lang.String formatTimestamp(java.sql.Timestamp ts)
          The result of this is used in SQL.
 java.lang.String outerWhereJoin(java.lang.String mainTableColumn, java.lang.String joinTableColumn)
          Return a string with a name-value pair that represents an SQL outer join in Oracle.
 java.lang.String sequenceSQL(java.lang.String tableName)
          This assumes there is an Oracle SEQUENCE object created with name of seq_tableNameHere When executed, this SQL should return a one column, one row result set with an Integer in it.
 java.lang.String timestampColumnType()
          This method used when building SQL for creating a table.
 java.lang.String timestampFunction()
          This should return the string value (function name) to put into the SQL to tell the database to insert the current timestamp.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OracleDatabasePolicy

public OracleDatabasePolicy()
Method Detail

sequenceSQL

public java.lang.String sequenceSQL(java.lang.String tableName)
This assumes there is an Oracle SEQUENCE object created with name of seq_tableNameHere When executed, this SQL should return a one column, one row result set with an Integer in it.
Specified by:
sequenceSQL in interface DatabasePolicy
Parameters:
tableName - a value of type 'String'
Returns:
a value of type 'String'

timestampFunction

public java.lang.String timestampFunction()
This should return the string value (function name) to put into the SQL to tell the database to insert the current timestamp.
Specified by:
timestampFunction in interface DatabasePolicy
Returns:
a value of type 'String'

formatTimestamp

public java.lang.String formatTimestamp(java.sql.Timestamp ts)
The result of this is used in SQL.
Specified by:
formatTimestamp in interface DatabasePolicy
Parameters:
ts - a value of type 'Timestamp'
Returns:
a value of type 'String'

formatDate

public java.lang.String formatDate(java.sql.Date sqlDate)
The result of this is used in SQL. This will return only the date (not the time portion).
Specified by:
formatDate in interface DatabasePolicy
Parameters:
ts - a value of type 'java.sql.Date'
Returns:
a value of type 'String'

currentTimestampSQL

public java.lang.String currentTimestampSQL()
This should return the the SQL to use to have the database return the current timestamp.
Specified by:
currentTimestampSQL in interface DatabasePolicy
Returns:
a value of type 'String'

autoIncrementIdentifier

public java.lang.String autoIncrementIdentifier()
Oracle has Sequences for generating an arbitrary integer primary key so AUTO INCREMENT is not needed here.
Specified by:
autoIncrementIdentifier in interface DatabasePolicy
Returns:
null since Oracle doesn't support the auto-increment method

findAutoIncrementId

public java.lang.Long findAutoIncrementId(java.lang.String tableName,
                                          java.lang.String columnName,
                                          JDBCHelper aJDBCHelper)
This method throws an exception since it should never be called.
Specified by:
findAutoIncrementId in interface DatabasePolicy
Parameters:
tableName - a value of type 'String'
columnName - a value of type 'String'
aJDBCHelper - a value of type 'JDBCHelper'
Returns:
a value of type 'Long'

createSequence

public void createSequence(AbstractDomain domain,
                           JDBCHelper aJDBCHelper)
                    throws java.sql.SQLException
This is called when creating a table that has a SEQUENCED_PRIMARY_KEY. If the sequence already exists, it is dropped before being created.
Specified by:
createSequence in interface DatabasePolicy
Parameters:
domain - a value of type 'AbstractDomain'
aJDBCHelper - a value of type 'JDBCHelper'

outerWhereJoin

public java.lang.String outerWhereJoin(java.lang.String mainTableColumn,
                                       java.lang.String joinTableColumn)
Return a string with a name-value pair that represents an SQL outer join in Oracle. Since we always put the main table on the left, we put the (+) after the right side so that any extra null rows will be generated for the right-hand table.
Specified by:
outerWhereJoin in interface DatabasePolicy
Parameters:
mainTableColumn - a value of type 'String'
joinTableColumn - a value of type 'String'
Returns:
a value of type 'String'

timestampColumnType

public java.lang.String timestampColumnType()
This method used when building SQL for creating a table.
Specified by:
timestampColumnType in interface DatabasePolicy
Returns:
a value of type 'String'