/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.metamodels.relational; import org.eclipse.emf.common.util.EList; /** * <!-- begin-user-doc --> * A representation of the model object '<em><b>Foreign Key</b></em>'. * <!-- end-user-doc --> * * <p> * The following features are supported: * <ul> * <li>{@link org.teiid.designer.metamodels.relational.ForeignKey#getForeignKeyMultiplicity <em>Foreign Key Multiplicity</em>}</li> * <li>{@link org.teiid.designer.metamodels.relational.ForeignKey#getPrimaryKeyMultiplicity <em>Primary Key Multiplicity</em>}</li> * <li>{@link org.teiid.designer.metamodels.relational.ForeignKey#getColumns <em>Columns</em>}</li> * <li>{@link org.teiid.designer.metamodels.relational.ForeignKey#getUniqueKey <em>Unique Key</em>}</li> * <li>{@link org.teiid.designer.metamodels.relational.ForeignKey#getTable <em>Table</em>}</li> * </ul> * </p> * * @see org.teiid.designer.metamodels.relational.RelationalPackage#getForeignKey() * @model * @generated * * @since 8.0 */ public interface ForeignKey extends Relationship{ /** * Returns the value of the '<em><b>Foreign Key Multiplicity</b></em>' attribute. * The default value is <code>"ZERO_TO_MANY"</code>. * The literals are from the enumeration {@link org.teiid.designer.metamodels.relational.MultiplicityKind}. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Foreign Key Multiplicity</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Foreign Key Multiplicity</em>' attribute. * @see org.teiid.designer.metamodels.relational.MultiplicityKind * @see #setForeignKeyMultiplicity(MultiplicityKind) * @see org.teiid.designer.metamodels.relational.RelationalPackage#getForeignKey_ForeignKeyMultiplicity() * @model default="ZERO_TO_MANY" * @generated */ MultiplicityKind getForeignKeyMultiplicity(); /** * Sets the value of the '{@link org.teiid.designer.metamodels.relational.ForeignKey#getForeignKeyMultiplicity <em>Foreign Key Multiplicity</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Foreign Key Multiplicity</em>' attribute. * @see org.teiid.designer.metamodels.relational.MultiplicityKind * @see #getForeignKeyMultiplicity() * @generated */ void setForeignKeyMultiplicity(MultiplicityKind value); /** * Returns the value of the '<em><b>Primary Key Multiplicity</b></em>' attribute. * The default value is <code>"ONE"</code>. * The literals are from the enumeration {@link org.teiid.designer.metamodels.relational.MultiplicityKind}. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Primary Key Multiplicity</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Primary Key Multiplicity</em>' attribute. * @see org.teiid.designer.metamodels.relational.MultiplicityKind * @see #setPrimaryKeyMultiplicity(MultiplicityKind) * @see org.teiid.designer.metamodels.relational.RelationalPackage#getForeignKey_PrimaryKeyMultiplicity() * @model default="ONE" * @generated */ MultiplicityKind getPrimaryKeyMultiplicity(); /** * Sets the value of the '{@link org.teiid.designer.metamodels.relational.ForeignKey#getPrimaryKeyMultiplicity <em>Primary Key Multiplicity</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Primary Key Multiplicity</em>' attribute. * @see org.teiid.designer.metamodels.relational.MultiplicityKind * @see #getPrimaryKeyMultiplicity() * @generated */ void setPrimaryKeyMultiplicity(MultiplicityKind value); /** * Returns the value of the '<em><b>Columns</b></em>' reference list. * The list contents are of type {@link org.teiid.designer.metamodels.relational.Column}. * It is bidirectional and its opposite is '{@link org.teiid.designer.metamodels.relational.Column#getForeignKeys <em>Foreign Keys</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Columns</em>' reference list isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Columns</em>' reference list. * @see org.teiid.designer.metamodels.relational.RelationalPackage#getForeignKey_Columns() * @see org.teiid.designer.metamodels.relational.Column#getForeignKeys * @model type="org.teiid.designer.metamodels.relational.Column" opposite="foreignKeys" required="true" * @generated */ EList getColumns(); /** * Returns the value of the '<em><b>Unique Key</b></em>' reference. * It is bidirectional and its opposite is '{@link org.teiid.designer.metamodels.relational.UniqueKey#getForeignKeys <em>Foreign Keys</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Unique Key</em>' reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Unique Key</em>' reference. * @see #isSetUniqueKey() * @see #unsetUniqueKey() * @see #setUniqueKey(UniqueKey) * @see org.teiid.designer.metamodels.relational.RelationalPackage#getForeignKey_UniqueKey() * @see org.teiid.designer.metamodels.relational.UniqueKey#getForeignKeys * @model opposite="foreignKeys" unsettable="true" required="true" * @generated */ UniqueKey getUniqueKey(); /** * Sets the value of the '{@link org.teiid.designer.metamodels.relational.ForeignKey#getUniqueKey <em>Unique Key</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Unique Key</em>' reference. * @see #isSetUniqueKey() * @see #unsetUniqueKey() * @see #getUniqueKey() * @generated */ void setUniqueKey(UniqueKey value); /** * Unsets the value of the '{@link org.teiid.designer.metamodels.relational.ForeignKey#getUniqueKey <em>Unique Key</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #isSetUniqueKey() * @see #getUniqueKey() * @see #setUniqueKey(UniqueKey) * @generated */ void unsetUniqueKey(); /** * Returns whether the value of the '{@link org.teiid.designer.metamodels.relational.ForeignKey#getUniqueKey <em>Unique Key</em>}' reference is set. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return whether the value of the '<em>Unique Key</em>' reference is set. * @see #unsetUniqueKey() * @see #getUniqueKey() * @see #setUniqueKey(UniqueKey) * @generated */ boolean isSetUniqueKey(); /** * Returns the value of the '<em><b>Table</b></em>' container reference. * It is bidirectional and its opposite is '{@link org.teiid.designer.metamodels.relational.BaseTable#getForeignKeys <em>Foreign Keys</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Table</em>' container reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Table</em>' container reference. * @see #setTable(BaseTable) * @see org.teiid.designer.metamodels.relational.RelationalPackage#getForeignKey_Table() * @see org.teiid.designer.metamodels.relational.BaseTable#getForeignKeys * @model opposite="foreignKeys" * @generated */ BaseTable getTable(); /** * Sets the value of the '{@link org.teiid.designer.metamodels.relational.ForeignKey#getTable <em>Table</em>}' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Table</em>' container reference. * @see #getTable() * @generated */ void setTable(BaseTable value); } // ForeignKey