/**
* <copyright>
* </copyright>
*
* $Id$
*/
package orgomg.cwm.resource.relational;
import org.eclipse.emf.common.util.EList;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Named Column Set</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* A catalogued set of columns, which may be Table or View.
*
* Note for typed tables: It is assumed that the typed table will own a set of columns conforming to the type they are OF. This set of columns allows the manipulation of the table by products which ignore this [SQL] extension. It also allows the columns of type REF, to be copied to a column with a SCOPE reference.
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link orgomg.cwm.resource.relational.NamedColumnSet#getUsingTrigger <em>Using Trigger</em>}</li>
* <li>{@link orgomg.cwm.resource.relational.NamedColumnSet#getType <em>Type</em>}</li>
* <li>{@link orgomg.cwm.resource.relational.NamedColumnSet#getOptionScopeColumn <em>Option Scope Column</em>}</li>
* </ul>
* </p>
*
* @see orgomg.cwm.resource.relational.RelationalPackage#getNamedColumnSet()
* @model
* @generated
*/
public interface NamedColumnSet extends ColumnSet {
/**
* Returns the value of the '<em><b>Using Trigger</b></em>' reference list.
* The list contents are of type {@link orgomg.cwm.resource.relational.Trigger}.
* It is bidirectional and its opposite is '{@link orgomg.cwm.resource.relational.Trigger#getUsedColumnSet <em>Used Column Set</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* A Trigger which references this table in its expression
* <!-- end-model-doc -->
* @return the value of the '<em>Using Trigger</em>' reference list.
* @see orgomg.cwm.resource.relational.RelationalPackage#getNamedColumnSet_UsingTrigger()
* @see orgomg.cwm.resource.relational.Trigger#getUsedColumnSet
* @model opposite="usedColumnSet"
* @generated
*/
EList<Trigger> getUsingTrigger();
/**
* Returns the value of the '<em><b>Type</b></em>' reference.
* It is bidirectional and its opposite is '{@link orgomg.cwm.resource.relational.SQLStructuredType#getColumnSet <em>Column Set</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* For typed Tables and Views, reference to the base SQLStructuredType.
*
* <!-- end-model-doc -->
* @return the value of the '<em>Type</em>' reference.
* @see #setType(SQLStructuredType)
* @see orgomg.cwm.resource.relational.RelationalPackage#getNamedColumnSet_Type()
* @see orgomg.cwm.resource.relational.SQLStructuredType#getColumnSet
* @model opposite="columnSet"
* @generated
*/
SQLStructuredType getType();
/**
* Sets the value of the '{@link orgomg.cwm.resource.relational.NamedColumnSet#getType <em>Type</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Type</em>' reference.
* @see #getType()
* @generated
*/
void setType(SQLStructuredType value);
/**
* Returns the value of the '<em><b>Option Scope Column</b></em>' reference list.
* The list contents are of type {@link orgomg.cwm.resource.relational.Column}.
* It is bidirectional and its opposite is '{@link orgomg.cwm.resource.relational.Column#getOptionScopeColumnSet <em>Option Scope Column Set</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Reference to the Column which contains theSCOPE clause.
* <!-- end-model-doc -->
* @return the value of the '<em>Option Scope Column</em>' reference list.
* @see orgomg.cwm.resource.relational.RelationalPackage#getNamedColumnSet_OptionScopeColumn()
* @see orgomg.cwm.resource.relational.Column#getOptionScopeColumnSet
* @model opposite="optionScopeColumnSet"
* @generated
*/
EList<Column> getOptionScopeColumn();
} // NamedColumnSet