dke.smwp.trigger
Class AbstractTrigger

java.lang.Object
  |
  +--dke.smwp.trigger.AbstractTrigger
Direct Known Subclasses:
DataFragmentTrigger, DerivedDataTrigger, FragmentationTrigger, PrimaryDataTrigger, ReferenceRelationTrigger, SerializeFragmentTrigger, SerializeTrigger

public abstract class AbstractTrigger
extends java.lang.Object

Abstract case class of all triggers;

Version:
1.1
Author:
Werner Enser

Field Summary
protected  ConnectionPool _connectionPool
           
protected  java.lang.String NEW_OPERATOR
          sql new operator
protected  java.lang.String OLD_OPERATOR
          sql old operator
 
Constructor Summary
AbstractTrigger()
          default constructor
 
Method Summary
 void dropTrigger(java.lang.String fc_longName)
          drops all derived fragment data trigger using fragment class fc_longName as trigger target
protected  int[] getTColumnPosition(java.lang.String tableName, java.util.ArrayList columnNameList)
          checks the position of a column in a TColumnTable object; not by using the TColumnsTable directly but checking for the same order of columns in the table tableName, also used for TColumnTable generation;
protected  int getTColumnPosition(java.lang.String tableName, java.lang.String columnName)
          checks the position of a column in a TColumnTable object; not by using the TColumnsTable directly but checking for the same order of columns in the table tableName, also used for TColumnTable generation;
protected  int[] getTColumnPosition(java.lang.String tableName, java.lang.String[] columnNames)
          checks the position of a column in a TColumnTable object; not using the TColumnsTable directly but checking for the same order of columns in table tableName used for TColumnTable generation;
protected  java.lang.String getTColumnString(java.lang.String tablename)
          generates PL/SQL trigger code for creating and initializing TColumnTable objects within triger; TColumnTable is used as container for tuples which are used by java stored procedures;
 java.lang.String getWhereClause(java.util.ArrayList columns_left, java.util.ArrayList columns_right, java.lang.String leftPrefix, java.lang.String rightPrefix, java.lang.String seperator, java.lang.String comparison_operator)
          generates sql where clause; used for PL/SQL trigger; columns_left and columns_right can contain a mixture of Column and String objects leftPrefix columnName_left comparison_operator rightPrefix columnName_right { seperator leftPrefix columnName_left comparison_operator rightPrefix columnName_right }
 java.lang.String getWhereClause(java.util.ArrayList columns, java.lang.String leftPrefix, java.lang.String rightPrefix, java.lang.String seperator, java.lang.String comparison_operator)
          generates sql where clause; used for PL/SQL trigger; the same colun name is used on both sides of the comparison operator; columns can contain a mixture of Column and String objects; leftPrefix columnName comparison_operator rightPrefix columnName { seperator leftPrefix columnName comparison_operator rightPrefix columnName }
 java.lang.String getWhereClause(java.lang.String[] columns_left, java.lang.String[] columns_right, java.lang.String leftPrefix, java.lang.String rightPrefix, java.lang.String seperator, java.lang.String comparison_operator)
          generates sql where clause; used for PL/SQL trigger; leftPrefix columnName_left comparison_operator rightPrefix columnName_right { seperator leftPrefix columnName_left comparison_operator rightPrefix columnName_right }
 java.lang.String getWhereClause(java.lang.String[] columns, java.lang.String leftPrefix, java.lang.String rightPrefix, java.lang.String seperator, java.lang.String comparison_operator)
          generates sql where clause; used for PL/SQL trigger; the same coloumn name is used on both sides of the comarison operator with different prefixes; leftPrefix columnName comparison_operator rightPrefix columnName { seperator leftPrefix columnName comparison_operator rightPrefix columnName }
static java.lang.String stingReplace(java.lang.String sourceString, java.lang.String searchPattern, java.lang.String replacePattern)
          replace all occurrences in sourceString of searchPattern with replace pattern if replacePattern is used as column name;
static java.lang.String stingTablenameReplace(java.lang.String sourceString, java.lang.String searchPattern, java.lang.String replacePattern)
          replace all occurrences in sourceString of searchPattern with replacePattern if searchPattern is used as table name .. (
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

_connectionPool

protected ConnectionPool _connectionPool

NEW_OPERATOR

protected java.lang.String NEW_OPERATOR
sql new operator

OLD_OPERATOR

protected java.lang.String OLD_OPERATOR
sql old operator
Constructor Detail

AbstractTrigger

public AbstractTrigger()
default constructor
Method Detail

dropTrigger

public void dropTrigger(java.lang.String fc_longName)
drops all derived fragment data trigger using fragment class fc_longName as trigger target
Parameters:
fc_shortName - name of the fragment class relation, which is trigger target

getWhereClause

public java.lang.String getWhereClause(java.lang.String[] columns,
                                       java.lang.String leftPrefix,
                                       java.lang.String rightPrefix,
                                       java.lang.String seperator,
                                       java.lang.String comparison_operator)
generates sql where clause; used for PL/SQL trigger; the same coloumn name is used on both sides of the comarison operator with different prefixes;

 leftPrefix columnName comparison_operator rightPrefix columnName
 { seperator leftPrefix columnName comparison_operator rightPrefix columnName }
 
Parameters:
columns - Array of String containing column names used for where clause
leftPrefix - String prefix used on the left side of the comparison operator
rightPrefix - String prefix used on the right side of the comparison operator
seperator - seperaor of whereClauses; f.e. "AND", "OR"
comparison_operator - sql operator; f.e. "=", "!="
Throws:
java.lang.ClassCastException - columns contains object which is neither String nor Column

getWhereClause

public java.lang.String getWhereClause(java.util.ArrayList columns,
                                       java.lang.String leftPrefix,
                                       java.lang.String rightPrefix,
                                       java.lang.String seperator,
                                       java.lang.String comparison_operator)
generates sql where clause; used for PL/SQL trigger; the same colun name is used on both sides of the comparison operator; columns can contain a mixture of Column and String objects;

 leftPrefix columnName comparison_operator rightPrefix columnName
 { seperator leftPrefix columnName comparison_operator rightPrefix columnName }
 
Parameters:
columns - List containing Column objects or String objects used for whereClause
leftPrefix - String prefix, used on the left side of the comparison operator
rightPrefix - String prefix used on the right side of the comparison operator
seperator - seperator of whereClauses; f.e. "AND", "OR"
comparison_operator - sql operator; f.e. "=", "!="
Throws:
java.lang.ClassCastException - columns contains object which is neither String nor Column

getWhereClause

public java.lang.String getWhereClause(java.lang.String[] columns_left,
                                       java.lang.String[] columns_right,
                                       java.lang.String leftPrefix,
                                       java.lang.String rightPrefix,
                                       java.lang.String seperator,
                                       java.lang.String comparison_operator)
generates sql where clause; used for PL/SQL trigger;
 leftPrefix columnName_left comparison_operator rightPrefix columnName_right
 { seperator leftPrefix columnName_left comparison_operator rightPrefix columnName_right }
 
Parameters:
columns_left - Array of String containing column names used for left side of where clause
columns_right - Array of String containing column names used for right side of where clause
leftPrefix - String prefix, used on the left side of the comparison operator
rightPrefix - String prefix used on the right side of the comparison operator
seperator - seperator of whereClauses; f.e. "AND", "OR"
comparison_operator - sql operator; f.e. "=", "!="
Throws:
java.lang.ClassCastException - columns contains object which is neither String nor Column

getWhereClause

public java.lang.String getWhereClause(java.util.ArrayList columns_left,
                                       java.util.ArrayList columns_right,
                                       java.lang.String leftPrefix,
                                       java.lang.String rightPrefix,
                                       java.lang.String seperator,
                                       java.lang.String comparison_operator)
generates sql where clause; used for PL/SQL trigger; columns_left and columns_right can contain a mixture of Column and String objects

 leftPrefix columnName_left comparison_operator rightPrefix columnName_right
 { seperator leftPrefix columnName_left comparison_operator rightPrefix columnName_right }
 
Parameters:
columns_left - Array of String containing column names used for left side of where clause
columns_right - Array of String containing column names used for right side of where clause
leftPrefix - String prefix, used on the left side of the comparison operator
rightPrefix - String prefix used on the right side of the comparison operator
seperator - seperator of whereClauses; f.e. "AND", "OR"
comparison_operator - sql operator; f.e. "=", "!="
Throws:
java.lang.ClassCastException - columns contains object which is neither String nor Column

getTColumnPosition

protected int getTColumnPosition(java.lang.String tableName,
                                 java.lang.String columnName)
                          throws java.sql.SQLException
checks the position of a column in a TColumnTable object; not by using the TColumnsTable directly but checking for the same order of columns in the table tableName, also used for TColumnTable generation;
Parameters:
tableName - relation which is checked for the position the column
columnName - name of column whose position is to be fetched
Returns:
integer, defining position of column in TColumnTable
Throws:
java.sql.SQLException - error on fetching table metadata
See Also:
TColumnTable

getTColumnPosition

protected int[] getTColumnPosition(java.lang.String tableName,
                                   java.util.ArrayList columnNameList)
                            throws java.sql.SQLException
checks the position of a column in a TColumnTable object; not by using the TColumnsTable directly but checking for the same order of columns in the table tableName, also used for TColumnTable generation;
Parameters:
tableName - relation which is checked for the position the column
columnNameList - List of String containing names of columns whose position are to be fetched
Returns:
Array of integer, defining positions of columns in TColumnTable
Throws:
java.sql.SQLException - error fetching table metadata
See Also:
TColumnTable

getTColumnPosition

protected int[] getTColumnPosition(java.lang.String tableName,
                                   java.lang.String[] columnNames)
                            throws java.sql.SQLException
checks the position of a column in a TColumnTable object; not using the TColumnsTable directly but checking for the same order of columns in table tableName used for TColumnTable generation;
Parameters:
tableName - relation containing the column which is to be checked
columnNames - names of columns whose positions are to be checked
Returns:
Array of integer, defining positions of columns in TColumnTable
Throws:
java.sql.SQLException - error on fetching table metadata

getTColumnString

protected java.lang.String getTColumnString(java.lang.String tablename)
                                     throws java.sql.SQLException
generates PL/SQL trigger code for creating and initializing TColumnTable objects within triger; TColumnTable is used as container for tuples which are used by java stored procedures;
Parameters:
tablename - table used as base for abstraction as TColumnTable
Returns:
String representation of PL/SQL code
Throws:
java.sql.SQLException - error fetching table meta-data

stingReplace

public static java.lang.String stingReplace(java.lang.String sourceString,
                                            java.lang.String searchPattern,
                                            java.lang.String replacePattern)
replace all occurrences in sourceString of searchPattern with replace pattern if replacePattern is used as column name;
Parameters:
sourceString - string which is to be modified
searchPattern - string pattern which is to be replaced
replacePattern - string which replaces searchPattern

stingTablenameReplace

public static java.lang.String stingTablenameReplace(java.lang.String sourceString,
                                                     java.lang.String searchPattern,
                                                     java.lang.String replacePattern)
replace all occurrences in sourceString of searchPattern with replacePattern if searchPattern is used as table name

 .. ( operator | " " ) tableName "." columnName .. 
Parameters:
sourceString - string which is to be modified
searchPattern - string pattern which is to be replaced
replacePattern - string which replaces searchPattern