/** * <copyright> * </copyright> * * $Id$ */ package orgomg.cwm.resource.relational; import org.eclipse.emf.common.util.EList; import orgomg.cwm.objectmodel.core.BooleanExpression; import orgomg.cwm.objectmodel.core.ModelElement; import orgomg.cwm.objectmodel.core.ProcedureExpression; import orgomg.cwm.resource.relational.enumerations.ActionOrientationType; import orgomg.cwm.resource.relational.enumerations.ConditionTimingType; import orgomg.cwm.resource.relational.enumerations.EventManipulationType; /** * <!-- begin-user-doc --> * A representation of the model object '<em><b>Trigger</b></em>'. * <!-- end-user-doc --> * * <!-- begin-model-doc --> * An action run by the DBMS when specified events occur on the table owning the Trigger * <!-- end-model-doc --> * * <p> * The following features are supported: * <ul> * <li>{@link orgomg.cwm.resource.relational.Trigger#getEventManipulation <em>Event Manipulation</em>}</li> * <li>{@link orgomg.cwm.resource.relational.Trigger#getActionCondition <em>Action Condition</em>}</li> * <li>{@link orgomg.cwm.resource.relational.Trigger#getActionStatement <em>Action Statement</em>}</li> * <li>{@link orgomg.cwm.resource.relational.Trigger#getActionOrientation <em>Action Orientation</em>}</li> * <li>{@link orgomg.cwm.resource.relational.Trigger#getConditionTiming <em>Condition Timing</em>}</li> * <li>{@link orgomg.cwm.resource.relational.Trigger#getConditionReferenceNewTable <em>Condition Reference New Table</em>}</li> * <li>{@link orgomg.cwm.resource.relational.Trigger#getConditionReferenceOldTable <em>Condition Reference Old Table</em>}</li> * <li>{@link orgomg.cwm.resource.relational.Trigger#getUsedColumnSet <em>Used Column Set</em>}</li> * <li>{@link orgomg.cwm.resource.relational.Trigger#getTable <em>Table</em>}</li> * </ul> * </p> * * @see orgomg.cwm.resource.relational.RelationalPackage#getTrigger() * @model * @generated */ public interface Trigger extends ModelElement { /** * Returns the value of the '<em><b>Event Manipulation</b></em>' attribute. * The literals are from the enumeration {@link orgomg.cwm.resource.relational.enumerations.EventManipulationType}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * Indicates what types of events are using the current Trigger. * <!-- end-model-doc --> * @return the value of the '<em>Event Manipulation</em>' attribute. * @see orgomg.cwm.resource.relational.enumerations.EventManipulationType * @see #setEventManipulation(EventManipulationType) * @see orgomg.cwm.resource.relational.RelationalPackage#getTrigger_EventManipulation() * @model * @generated */ EventManipulationType getEventManipulation(); /** * Sets the value of the '{@link orgomg.cwm.resource.relational.Trigger#getEventManipulation <em>Event Manipulation</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Event Manipulation</em>' attribute. * @see orgomg.cwm.resource.relational.enumerations.EventManipulationType * @see #getEventManipulation() * @generated */ void setEventManipulation(EventManipulationType value); /** * Returns the value of the '<em><b>Action Condition</b></em>' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * A boolean expression which defines when the trigger has to be executed * <!-- end-model-doc --> * @return the value of the '<em>Action Condition</em>' containment reference. * @see #setActionCondition(BooleanExpression) * @see orgomg.cwm.resource.relational.RelationalPackage#getTrigger_ActionCondition() * @model containment="true" * @generated */ BooleanExpression getActionCondition(); /** * Sets the value of the '{@link orgomg.cwm.resource.relational.Trigger#getActionCondition <em>Action Condition</em>}' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Action Condition</em>' containment reference. * @see #getActionCondition() * @generated */ void setActionCondition(BooleanExpression value); /** * Returns the value of the '<em><b>Action Statement</b></em>' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * The Trigger action itself * <!-- end-model-doc --> * @return the value of the '<em>Action Statement</em>' containment reference. * @see #setActionStatement(ProcedureExpression) * @see orgomg.cwm.resource.relational.RelationalPackage#getTrigger_ActionStatement() * @model containment="true" * @generated */ ProcedureExpression getActionStatement(); /** * Sets the value of the '{@link orgomg.cwm.resource.relational.Trigger#getActionStatement <em>Action Statement</em>}' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Action Statement</em>' containment reference. * @see #getActionStatement() * @generated */ void setActionStatement(ProcedureExpression value); /** * Returns the value of the '<em><b>Action Orientation</b></em>' attribute. * The literals are from the enumeration {@link orgomg.cwm.resource.relational.enumerations.ActionOrientationType}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * It indicates if the trigger is called once per statement execution or before or after each row of the table is modified. * <!-- end-model-doc --> * @return the value of the '<em>Action Orientation</em>' attribute. * @see orgomg.cwm.resource.relational.enumerations.ActionOrientationType * @see #setActionOrientation(ActionOrientationType) * @see orgomg.cwm.resource.relational.RelationalPackage#getTrigger_ActionOrientation() * @model * @generated */ ActionOrientationType getActionOrientation(); /** * Sets the value of the '{@link orgomg.cwm.resource.relational.Trigger#getActionOrientation <em>Action Orientation</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Action Orientation</em>' attribute. * @see orgomg.cwm.resource.relational.enumerations.ActionOrientationType * @see #getActionOrientation() * @generated */ void setActionOrientation(ActionOrientationType value); /** * Returns the value of the '<em><b>Condition Timing</b></em>' attribute. * The literals are from the enumeration {@link orgomg.cwm.resource.relational.enumerations.ConditionTimingType}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * It indicates if the trigger activity is run before or after the statement or row is modified. * <!-- end-model-doc --> * @return the value of the '<em>Condition Timing</em>' attribute. * @see orgomg.cwm.resource.relational.enumerations.ConditionTimingType * @see #setConditionTiming(ConditionTimingType) * @see orgomg.cwm.resource.relational.RelationalPackage#getTrigger_ConditionTiming() * @model * @generated */ ConditionTimingType getConditionTiming(); /** * Sets the value of the '{@link orgomg.cwm.resource.relational.Trigger#getConditionTiming <em>Condition Timing</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Condition Timing</em>' attribute. * @see orgomg.cwm.resource.relational.enumerations.ConditionTimingType * @see #getConditionTiming() * @generated */ void setConditionTiming(ConditionTimingType value); /** * Returns the value of the '<em><b>Condition Reference New Table</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * The alias for the owning table name, used in the actionStatement, to represent the state of the table after the insert/delete/update * <!-- end-model-doc --> * @return the value of the '<em>Condition Reference New Table</em>' attribute. * @see #setConditionReferenceNewTable(String) * @see orgomg.cwm.resource.relational.RelationalPackage#getTrigger_ConditionReferenceNewTable() * @model dataType="orgomg.cwm.objectmodel.core.String" * @generated */ String getConditionReferenceNewTable(); /** * Sets the value of the '{@link orgomg.cwm.resource.relational.Trigger#getConditionReferenceNewTable <em>Condition Reference New Table</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Condition Reference New Table</em>' attribute. * @see #getConditionReferenceNewTable() * @generated */ void setConditionReferenceNewTable(String value); /** * Returns the value of the '<em><b>Condition Reference Old Table</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * The alias for the name of the owning table, used in the actionStatement, to represent the state of the table before the update/delete/insert. * <!-- end-model-doc --> * @return the value of the '<em>Condition Reference Old Table</em>' attribute. * @see #setConditionReferenceOldTable(String) * @see orgomg.cwm.resource.relational.RelationalPackage#getTrigger_ConditionReferenceOldTable() * @model dataType="orgomg.cwm.objectmodel.core.String" * @generated */ String getConditionReferenceOldTable(); /** * Sets the value of the '{@link orgomg.cwm.resource.relational.Trigger#getConditionReferenceOldTable <em>Condition Reference Old Table</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Condition Reference Old Table</em>' attribute. * @see #getConditionReferenceOldTable() * @generated */ void setConditionReferenceOldTable(String value); /** * Returns the value of the '<em><b>Used Column Set</b></em>' reference list. * The list contents are of type {@link orgomg.cwm.resource.relational.NamedColumnSet}. * It is bidirectional and its opposite is '{@link orgomg.cwm.resource.relational.NamedColumnSet#getUsingTrigger <em>Using Trigger</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * NamedColumnSets referenced by the actionStatement or the actionCondition. * <!-- end-model-doc --> * @return the value of the '<em>Used Column Set</em>' reference list. * @see orgomg.cwm.resource.relational.RelationalPackage#getTrigger_UsedColumnSet() * @see orgomg.cwm.resource.relational.NamedColumnSet#getUsingTrigger * @model opposite="usingTrigger" * @generated */ EList<NamedColumnSet> getUsedColumnSet(); /** * Returns the value of the '<em><b>Table</b></em>' reference. * It is bidirectional and its opposite is '{@link orgomg.cwm.resource.relational.Table#getTrigger <em>Trigger</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * The table which owns the Trigger * <!-- end-model-doc --> * @return the value of the '<em>Table</em>' reference. * @see #setTable(Table) * @see orgomg.cwm.resource.relational.RelationalPackage#getTrigger_Table() * @see orgomg.cwm.resource.relational.Table#getTrigger * @model opposite="trigger" required="true" * @generated */ Table getTable(); /** * Sets the value of the '{@link orgomg.cwm.resource.relational.Trigger#getTable <em>Table</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Table</em>' reference. * @see #getTable() * @generated */ void setTable(Table value); } // Trigger