dke.smwp.trigger
Class ReferenceRelationTrigger

java.lang.Object
  |
  +--dke.smwp.trigger.AbstractTrigger
        |
        +--dke.smwp.trigger.ReferenceRelationTrigger

public class ReferenceRelationTrigger
extends AbstractTrigger

class for creating/deploying and deleting reference relation triggers.

This triggers are used to propagate tuple modifications in root fragment class relation to its mapped reference relations. The trigger is require only if parameter definition also created the reference relation. Not for parameters which are mapping existing relations as reference relations.

Two types of trigger are available:

synchronized trigger: A parameter can only exists in Reference Relation if it also exists in the linked fragment class relation designated by fc_shortName (parameter is held synchronous).

expansive trigger. Generates trigger which fires from fragment root class (from which the reference relation was generated upon) into the reference relation (value based) which inserts new parameters into the reference relation.

Version:
1.0
Author:
Werner Enser

Fields inherited from class dke.smwp.trigger.AbstractTrigger
_connectionPool, NEW_OPERATOR, OLD_OPERATOR
 
Constructor Summary
ReferenceRelationTrigger()
          default constructor
 
Method Summary
 void createExpansiveTrigger(java.lang.String fc_shortName, java.lang.String rv_shortName, java.lang.String paramName)
          Creates expansive Reference Relation Trigger.
 void createSynchronizedTrigger(java.lang.String fc_shortName, java.lang.String rv_shortName, java.lang.String paramName)
          Creates synchronized Reference Relation Trigger. A Parameter can only exists in Reference Relation if it also exists in the linked Fragment Class Relation designated by fc_shortName (parameter is held synchronous).
 void dropTrigger(java.lang.String rr_longName)
          Drops the reference relation trigger which is defined upon reference relation designated by rr_longName
 java.lang.String getExpansiveTrigger(java.lang.String fc_short_name, java.lang.String rv_short_name, java.lang.String param_name)
          generates trigger code for expansive trigger, which triggers from fragment root class (from which the reference was generated upon) into the reference relation (value based) which inserts new parameters into the reference relation
 java.lang.String getSynchronizedTrigger1(java.lang.String fc_shortName, java.lang.String rv_shortName, java.lang.String paramName)
          generates trigger code for synchronized trigger, which triggers from fragment root class (from which the reference was generated upon) into the reference relation (value based) which synchronizes value parameters between these two relations
 java.lang.String getSynchronizedTrigger2(java.lang.String fc_shortName, java.lang.String rv_shortName, java.lang.String paramName)
          generates trigger code for synchronized trigger, which triggers from fragment root class (from which the reference was generated upon) into the reference relation (value based) which synchronizes value parameters between these two relations
 
Methods inherited from class dke.smwp.trigger.AbstractTrigger
getTColumnPosition, getTColumnPosition, getTColumnPosition, getTColumnString, getWhereClause, getWhereClause, getWhereClause, getWhereClause, stingReplace, stingTablenameReplace
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Constructor Detail

ReferenceRelationTrigger

public ReferenceRelationTrigger()
default constructor
Method Detail

createExpansiveTrigger

public void createExpansiveTrigger(java.lang.String fc_shortName,
                                   java.lang.String rv_shortName,
                                   java.lang.String paramName)
                            throws java.sql.SQLException
Creates expansive Reference Relation Trigger.

Inserting parameters Fragment Class Relation fc_shortName, propagates insertion in Reference Relation .

Parameters:
fc_shortName - name of the Fragment Class Relation, the parameter is defined upon
rv_shortName - name of the Reference Relation
paramName -  
Throws:
java.sql.SQLException - trigger creation/deployment failed

createSynchronizedTrigger

public void createSynchronizedTrigger(java.lang.String fc_shortName,
                                      java.lang.String rv_shortName,
                                      java.lang.String paramName)
                               throws java.sql.SQLException

Creates synchronized Reference Relation Trigger.

A Parameter can only exists in Reference Relation if it also exists in the linked Fragment Class Relation designated by fc_shortName (parameter is held synchronous).

Parameters:
fc_shortName - name of fragment class relation the trigger is defined upon (trigger source)
rv_shortName - name of reference relation (trigger target)
paramName - parameter name
Throws:
java.sql.SQLException - creation/deployment of trigger failed

dropTrigger

public void dropTrigger(java.lang.String rr_longName)
Drops the reference relation trigger which is defined upon reference relation designated by rr_longName
Overrides:
dropTrigger in class AbstractTrigger
Parameters:
rr_longName - name of reference relation, whose trigger is to be dropped

getExpansiveTrigger

public java.lang.String getExpansiveTrigger(java.lang.String fc_short_name,
                                            java.lang.String rv_short_name,
                                            java.lang.String param_name)
generates trigger code for expansive trigger, which triggers from fragment root class (from which the reference was generated upon) into the reference relation (value based) which inserts new parameters into the reference relation
Parameters:
fc_short_name - fragment class short name, upon which the trigger is defined
rv_short_name - reference relation short name
param_name - parameter name

getSynchronizedTrigger1

public java.lang.String getSynchronizedTrigger1(java.lang.String fc_shortName,
                                                java.lang.String rv_shortName,
                                                java.lang.String paramName)
generates trigger code for synchronized trigger, which triggers from fragment root class (from which the reference was generated upon) into the reference relation (value based) which synchronizes value parameters between these two relations
Parameters:
fc_shortName - fragment class short name, upon which the trigger is defined
rv_shortName - reference relation short name
paramName - parameter name, which is to be synchronized

getSynchronizedTrigger2

public java.lang.String getSynchronizedTrigger2(java.lang.String fc_shortName,
                                                java.lang.String rv_shortName,
                                                java.lang.String paramName)
generates trigger code for synchronized trigger, which triggers from fragment root class (from which the reference was generated upon) into the reference relation (value based) which synchronizes value parameters between these two relations
Parameters:
fc_shortName - fragment class short name, upon which the trigger is defined
rv_shortName - reference relation short name
param_name - parameter name, which is to be synchronized