wt.tools.generation.sql
Class OracleSQLGenerator

java.lang.Object
  extended bywt.tools.generation.sql.SQLGenerator
      extended bywt.tools.generation.sql.OracleSQLGenerator
Direct Known Subclasses:
OracleStandardSQLGenerator

public class OracleSQLGenerator
extends SQLGenerator

Construct a block of sql code to create a table


Field Summary
private static String BLOBTSNAME
           
private static String CHUNKSIZE
           
private static Datastore DATASTORE
           
private static String DEFAULT_TABLESPACE_NAME
           
private static String ENDPROC
           
private static String HUGE
           
private static String HUGEBLOBSIZE
           
private static String HUGETABLESIZE
           
private static String INDEX_TABLESPACE_NAME
           
private static String LARGE
           
private static String LARGEBLOBSIZE
           
private static String LARGETABLESIZE
           
private static int MAX_BYTES_PER_CHAR
           
private static int MAX_INDEXNAME_LENGTH
           
private static int MAXSQLSTRINGSIZE
           
private static String MEDIUM
           
private static String MEDIUMBLOBSIZE
           
private static String MEDIUMTABLESIZE
           
private static String NOT_NULL_CLAUSE
           
private static int ORACLE_8_0_BLOB_TYPE
           
protected static WTProperties properties
           
private static String SMALL
           
private static String SMALLBLOBSIZE
           
private static String SMALLTABLESIZE
           
private static String TABLESPACE_CLAUSE
           
private static String TINY
           
private static String TINYBLOBSIZE
           
private static String TINYTABLESIZE
           
private static HashMap UNIQUE_NAMES
           
private static String USING_CLAUSE
           
 
Fields inherited from class wt.tools.generation.sql.SQLGenerator
COMMA_DELIMITER, DB_DELIMITER
 
Constructor Summary
OracleSQLGenerator()
           
 
Method Summary
 String createArray(String a_arrayName, String a_arrayType)
           
 void createColumnIndex(String a_className, DatabaseInfo a_dbInfo, StringBuffer a_buffer)
           
 void createFKConstraints(String a_constraintName, String a_linkClassTableName, List linkColumnNames, String a_roleClassTableName, List roleColumnNames, boolean isOwner, boolean isLinkTable, StringBuffer a_buffer)
           
protected  void createIndexOption(BaseTableInfo a_tableInfo, StringBuffer a_buffer)
           
 void createIndicies(BaseTableInfo a_baseTableInfo, String[][] a_indexColumns, boolean a_isUnique, StringBuffer a_buffer)
           
 String createSequence(String a_sequenceName, String a_seed, String a_increment)
           
 long createStruct(String a_structName, StringBuffer a_buffer, ClassInfo a_classInfo, DatabaseInfo a_dbInfo)
           
 void createTable(String a_className, ClassInfo a_classInfo, DatabaseInfo a_dbInfo, StringBuffer a_buffer)
           
 void createTriggerConstraints_removeLink(String roleClassTableName, String linkClassTableName, String linkColumnName, boolean isLinkTable, StringBuffer create_buffer, StringBuffer drop_buffer)
           
 void createTriggerConstraints_removeRole(String linkClassTableName, List roleTablesList, String refColumnName, StringBuffer create_buffer, StringBuffer drop_buffer)
           
 String createTriggerItems(String a_className, DatabaseInfo a_dbInfo)
           
 String dropArray(String a_arrayName, StringBuffer a_buffer)
           
 void dropColumnIndex(String a_className, DatabaseInfo a_dbInfo, StringBuffer a_buffer)
           
 void dropFKConstraints(String a_constraintName, String a_linkClassTableName, StringBuffer a_buffer)
           
 void dropIndex(BaseTableInfo a_tableInfo, String[] a_columns, boolean a_isUnique, String a_indexName, StringBuffer a_buffer)
           
 void dropIndicies(BaseTableInfo a_baseTableInfo, String[][] a_indexColumns, boolean a_isUnique, StringBuffer a_buffer)
           
 String dropSequence(String a_sequenceName, StringBuffer a_buffer)
           
 String dropStruct(String a_structName, StringBuffer a_buffer)
           
 String dropTable(String aTablename, StringBuffer a_buffer)
          This method constructs the statement to drop the table by calling the stored procedure.
private static String getBlobStorageText(ColumnDescriptor aColumnDescriptor)
           
protected  String getCommitDelimiter()
           
 String[] getIndexColumns(BaseTableInfo a_baseTableInfo, String[] a_indexColumns, boolean a_isUnique, int a_indexOffset)
           
protected  int getMaxIndexNameLength()
           
 String getSQLTypeAsString(int sql_type, int string_length)
           
static String getSQLTypeString(int sqltype, int stringLength)
           
private static void getStorageText(BaseTableInfo aBaseTableInfo, StringBuffer a_buffer)
          Creates the storage clause based upon the table size given in the properties
private  long getStructScriptLevel(ClassInfo a_classInfo, long scriptLevel)
           
protected  Map getUniqueNames()
           
protected  boolean isReservedWord(String a_name)
           
 boolean isSQLTypeBlob(int sql_type)
           
static boolean isSqlTypeLob(int sql_type)
           
private static void oracleComment(String aTablename, String aClassname, StringBuffer a_buffer)
          This method constructs the COMMENT text indicating which table is being created for what aClassname.
private static void oracleRemark(String aTablename, String aClassname, StringBuffer a_buffer)
          This method constructs the REMARK text indicating which table is being created.
protected  void preCreateView(String a_viewName, StringBuffer a_buffer)
           
 
Methods inherited from class wt.tools.generation.sql.SQLGenerator
createAllClassesTriggerConstraintItems, createAlterTableAddColumns, createAlterTableDropColumns, createFKConstraintItems, createFKConstraintItems, createFKConstraintItems, createIndex, createIndexItems, createLinkSpecificTriggerConstraintItems, createLinkTriggerConstraintItems, createRoleFKConstraintItems, createRoleTriggerConstraintItems, createTableItems, createTriggerConstraintItems, createView, dropIndexItems, dropTriggerItems, dropView, getAdjustedName, getComputedColumns, getComputedIndexColumns, getDescendentTables, getIndexName, getProcessedLinkInfos, getTableColumns, getTriggerNameList, getUpdateColumnList, isComputedColumn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NOT_NULL_CLAUSE

private static final String NOT_NULL_CLAUSE
See Also:
Constant Field Values

USING_CLAUSE

private static final String USING_CLAUSE
See Also:
Constant Field Values

TABLESPACE_CLAUSE

private static final String TABLESPACE_CLAUSE
See Also:
Constant Field Values

ENDPROC

private static final String ENDPROC
See Also:
Constant Field Values

TINY

private static final String TINY
See Also:
Constant Field Values

SMALL

private static final String SMALL
See Also:
Constant Field Values

MEDIUM

private static final String MEDIUM
See Also:
Constant Field Values

LARGE

private static final String LARGE
See Also:
Constant Field Values

HUGE

private static final String HUGE
See Also:
Constant Field Values

ORACLE_8_0_BLOB_TYPE

private static final int ORACLE_8_0_BLOB_TYPE
See Also:
Constant Field Values

TINYTABLESIZE

private static final String TINYTABLESIZE

SMALLTABLESIZE

private static final String SMALLTABLESIZE

MEDIUMTABLESIZE

private static final String MEDIUMTABLESIZE

LARGETABLESIZE

private static final String LARGETABLESIZE

HUGETABLESIZE

private static final String HUGETABLESIZE

BLOBTSNAME

private static final String BLOBTSNAME

CHUNKSIZE

private static final String CHUNKSIZE

TINYBLOBSIZE

private static final String TINYBLOBSIZE

SMALLBLOBSIZE

private static final String SMALLBLOBSIZE

MEDIUMBLOBSIZE

private static final String MEDIUMBLOBSIZE

LARGEBLOBSIZE

private static final String LARGEBLOBSIZE

HUGEBLOBSIZE

private static final String HUGEBLOBSIZE

MAXSQLSTRINGSIZE

private static final int MAXSQLSTRINGSIZE

MAX_BYTES_PER_CHAR

private static final int MAX_BYTES_PER_CHAR

MAX_INDEXNAME_LENGTH

private static final int MAX_INDEXNAME_LENGTH
See Also:
Constant Field Values

properties

protected static WTProperties properties

UNIQUE_NAMES

private static final HashMap UNIQUE_NAMES

INDEX_TABLESPACE_NAME

private static final String INDEX_TABLESPACE_NAME

DEFAULT_TABLESPACE_NAME

private static final String DEFAULT_TABLESPACE_NAME

DATASTORE

private static final Datastore DATASTORE
Constructor Detail

OracleSQLGenerator

public OracleSQLGenerator()
Method Detail

createTriggerItems

public String createTriggerItems(String a_className,
                                 DatabaseInfo a_dbInfo)
                          throws WTException
Overrides:
createTriggerItems in class SQLGenerator
Throws:
WTException

getIndexColumns

public String[] getIndexColumns(BaseTableInfo a_baseTableInfo,
                                String[] a_indexColumns,
                                boolean a_isUnique,
                                int a_indexOffset)
Specified by:
getIndexColumns in class SQLGenerator

createStruct

public long createStruct(String a_structName,
                         StringBuffer a_buffer,
                         ClassInfo a_classInfo,
                         DatabaseInfo a_dbInfo)
                  throws WTException
Overrides:
createStruct in class SQLGenerator
Throws:
WTException

getStructScriptLevel

private long getStructScriptLevel(ClassInfo a_classInfo,
                                  long scriptLevel)
                           throws WTException
Throws:
WTException

dropStruct

public String dropStruct(String a_structName,
                         StringBuffer a_buffer)
Overrides:
dropStruct in class SQLGenerator

createArray

public String createArray(String a_arrayName,
                          String a_arrayType)
                   throws WTException
Overrides:
createArray in class SQLGenerator
Throws:
WTException

dropArray

public String dropArray(String a_arrayName,
                        StringBuffer a_buffer)
Overrides:
dropArray in class SQLGenerator

createSequence

public String createSequence(String a_sequenceName,
                             String a_seed,
                             String a_increment)
                      throws WTException
Overrides:
createSequence in class SQLGenerator
Throws:
WTException

dropSequence

public String dropSequence(String a_sequenceName,
                           StringBuffer a_buffer)
Overrides:
dropSequence in class SQLGenerator

createFKConstraints

public void createFKConstraints(String a_constraintName,
                                String a_linkClassTableName,
                                List linkColumnNames,
                                String a_roleClassTableName,
                                List roleColumnNames,
                                boolean isOwner,
                                boolean isLinkTable,
                                StringBuffer a_buffer)
                         throws WTException
Overrides:
createFKConstraints in class SQLGenerator
Throws:
WTException

dropFKConstraints

public void dropFKConstraints(String a_constraintName,
                              String a_linkClassTableName,
                              StringBuffer a_buffer)
                       throws WTException
Overrides:
dropFKConstraints in class SQLGenerator
Throws:
WTException

createTriggerConstraints_removeRole

public void createTriggerConstraints_removeRole(String linkClassTableName,
                                                List roleTablesList,
                                                String refColumnName,
                                                StringBuffer create_buffer,
                                                StringBuffer drop_buffer)
                                         throws WTException
Overrides:
createTriggerConstraints_removeRole in class SQLGenerator
Throws:
WTException

createTriggerConstraints_removeLink

public void createTriggerConstraints_removeLink(String roleClassTableName,
                                                String linkClassTableName,
                                                String linkColumnName,
                                                boolean isLinkTable,
                                                StringBuffer create_buffer,
                                                StringBuffer drop_buffer)
                                         throws WTException
Overrides:
createTriggerConstraints_removeLink in class SQLGenerator
Throws:
WTException

createTable

public void createTable(String a_className,
                        ClassInfo a_classInfo,
                        DatabaseInfo a_dbInfo,
                        StringBuffer a_buffer)
                 throws WTException
Specified by:
createTable in class SQLGenerator
Throws:
WTException

createColumnIndex

public void createColumnIndex(String a_className,
                              DatabaseInfo a_dbInfo,
                              StringBuffer a_buffer)
                       throws WTException
Specified by:
createColumnIndex in class SQLGenerator
Throws:
WTException

dropColumnIndex

public void dropColumnIndex(String a_className,
                            DatabaseInfo a_dbInfo,
                            StringBuffer a_buffer)
                     throws WTException
Specified by:
dropColumnIndex in class SQLGenerator
Throws:
WTException

dropTable

public String dropTable(String aTablename,
                        StringBuffer a_buffer)
This method constructs the statement to drop the table by calling the stored procedure. If the table does not exist, the Oracle error is ignored.

Specified by:
dropTable in class SQLGenerator
Parameters:
aTablename - tablename to drop
Returns:
dropStmt
Throws:
IOException

createIndexOption

protected void createIndexOption(BaseTableInfo a_tableInfo,
                                 StringBuffer a_buffer)
Overrides:
createIndexOption in class SQLGenerator

preCreateView

protected void preCreateView(String a_viewName,
                             StringBuffer a_buffer)
Specified by:
preCreateView in class SQLGenerator

getCommitDelimiter

protected String getCommitDelimiter()
Specified by:
getCommitDelimiter in class SQLGenerator

getMaxIndexNameLength

protected int getMaxIndexNameLength()
Specified by:
getMaxIndexNameLength in class SQLGenerator

getUniqueNames

protected Map getUniqueNames()
Specified by:
getUniqueNames in class SQLGenerator

isReservedWord

protected boolean isReservedWord(String a_name)
Specified by:
isReservedWord in class SQLGenerator

oracleRemark

private static void oracleRemark(String aTablename,
                                 String aClassname,
                                 StringBuffer a_buffer)
This method constructs the REMARK text indicating which table is being created.

Parameters:
aTablename - tablename being created
aClassname - fully-qualified Classname
Returns:
remarkStr
Throws:
IOException

oracleComment

private static void oracleComment(String aTablename,
                                  String aClassname,
                                  StringBuffer a_buffer)
This method constructs the COMMENT text indicating which table is being created for what aClassname. These comments are stored in the data dictionary. They can be viewed using the command: select comments from user_tab_comments where table_name='aTablename'

Parameters:
aTablename - tablename being created
Returns:
commentStr
Throws:
IOException

getStorageText

private static void getStorageText(BaseTableInfo aBaseTableInfo,
                                   StringBuffer a_buffer)
Creates the storage clause based upon the table size given in the properties

Parameters:
aBaseTableInfo - BaseTableInfo describing this table
Returns:
commentStr
Throws:
IOException

getBlobStorageText

private static String getBlobStorageText(ColumnDescriptor aColumnDescriptor)

getSQLTypeString

public static String getSQLTypeString(int sqltype,
                                      int stringLength)

isSqlTypeLob

public static boolean isSqlTypeLob(int sql_type)

isSQLTypeBlob

public boolean isSQLTypeBlob(int sql_type)
Specified by:
isSQLTypeBlob in class SQLGenerator

getSQLTypeAsString

public String getSQLTypeAsString(int sql_type,
                                 int string_length)
Specified by:
getSQLTypeAsString in class SQLGenerator

createIndicies

public void createIndicies(BaseTableInfo a_baseTableInfo,
                           String[][] a_indexColumns,
                           boolean a_isUnique,
                           StringBuffer a_buffer)
                    throws WTException
Specified by:
createIndicies in class SQLGenerator
Throws:
WTException

dropIndicies

public void dropIndicies(BaseTableInfo a_baseTableInfo,
                         String[][] a_indexColumns,
                         boolean a_isUnique,
                         StringBuffer a_buffer)
                  throws WTException
Specified by:
dropIndicies in class SQLGenerator
Throws:
WTException

dropIndex

public void dropIndex(BaseTableInfo a_tableInfo,
                      String[] a_columns,
                      boolean a_isUnique,
                      String a_indexName,
                      StringBuffer a_buffer)
Specified by:
dropIndex in class SQLGenerator