<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc on Tue Jan 11 10:54:26 PST 2005 -->
<TITLE>
: Interface  Column
</TITLE>
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../stylesheet.css" TITLE="Style">
</HEAD>
<BODY BGCOLOR="white">

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_top"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Column.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/BaseTable.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/DerivedTable.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Column.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY: &nbsp;INNER&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.eclipse.wst.rdb.internal.models.sql.tables</FONT>
<BR>
Interface  Column</H2>
<DL>
<DT><B>All Superinterfaces:</B> <DD>org.eclipse.emf.ecore.EModelElement, org.eclipse.emf.ecore.ENamedElement, org.eclipse.emf.ecore.EObject, org.eclipse.emf.common.notify.Notifier, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html">SQLObject</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/TypedElement.html">TypedElement</A></DD>
</DL>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/impl/ColumnImpl.html">ColumnImpl</A></DD>
</DL>
<HR>
<DL>
<DT>public interface <B>Column</B><DT>extends <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/TypedElement.html">TypedElement</A></DL>

<P>
<!-- begin-user-doc -->
 A representation of the model object '<em><b>Column</b></em>'.
 <!-- end-user-doc -->

 <!-- begin-model-doc -->
 4.13 Columns, fields, and attributes
 
 The terms column, field, and attribute refer to structural components of tables, row types, and structured types, respectively, in analogous fashion. As the structure of a table consists of one or more columns, so does the structure of a row type consist of one or more fields and that of a structured type one or more attributes. Every structural element, whether a column, a field, or an attribute, is primarily a name paired with a declared type.
 
 The elements of a structure are ordered. Elements in different positions in the same structure can have the same declared type but not the same name. Although the elements of a structure are distinguished from each other by name, in some circumstances the compatibility of two structures (for the purpose at hand) is determined solely by considering the declared types of each pair of elements at the same ordinal position.
 
 A table (see Subclause 4.14, "Tables") is defined on one or more columns and consists of zero or more rows. A column has a name and a declared type. Each row in a table has exactly one value for each column. Each value in a row is a value in the declared type of the column.
 NOTE 21: The declared type includes the null value and values in proper subtypes of the declared type. Every column has a nullability characteristic that indicates whether the value from that column can be the null value. The possible values of nullability characteristic are known not nullable and possibly nullable.
 
 A column C is described by a column descriptor. A column descriptor includes:
  - The name of the column.
  - Whether the name of the column is an implementation-dependent name.
  - If the column is based on a domain, then the name of that domain; otherwise, the data type descriptor of the declared type of C.
  - The value of <default option> , if any, of C.
  - The nullability characteristic of C.
  - The ordinal position of C within the table that contains it.
  - An indication of whether C is a self-referencing column of a base table or not.
  - If the declared type of C is a reference type, then an indication of whether references are to be checked, and the <reference scope check action> , if specified or implied.
  - An indication of whether C is an identity column or not.
  - If C is an identity column, then an indication of whether values are always generated or generated by default.
  - If C is an identity column, then the start value of C.
  - If C is an identity column, then the descriptor of the internal sequence generator for C.
 NOTE 22 - Identity columns and the meaning of "start value" are described in Subclause 4.14.4, "Identity columns".
 
  - If C is a generated column, then the generation expression of C.
 NOTE 23 - Generated columns and the meaning of "generation expression" are described in Subclause 4.14.5, "Base columns and generated columns".
 
 An attribute A is described by an attribute descriptor. An attribute descriptor includes:
  - The name of the attribute.
  - The data type descriptor of the declared type of A.
  - The ordinal position of A within the structured type that contains it.
  - The value of the implicit or explicit <attribute default> of A.
  - If the data type of the attribute is a reference type, then an indication of whether reference values shall be checked, and the <reference scope check action> , if specified or implied.
  - The name of the structured type defined by the <user-defined type definition> that defines A.
 
 A field F is described by a field descriptor. A field descriptor includes:
  - The name of the field.
  - The data type descriptor of the declared type of F.
  - The ordinal position of F within the row type that simply contains it.
  - If the data type of the field is a reference type, then an indication of whether reference values shall be checked, and the <reference scope check action> , if specified or implied.
 
 <!-- end-model-doc -->

 <p>
 The following features are supported:
 <ul>
   <li><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getTable()"><CODE><em>Table</em></CODE></A></li>
   <li><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getIdentitySpecifier()"><CODE><em>Identity Specifier</em></CODE></A></li>
   <li><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getGenerateExpression()"><CODE><em>Generate Expression</em></CODE></A></li>
   <li><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isImplementationDependent()"><CODE><em>Implementation Dependent</em></CODE></A></li>
   <li><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isNullable()"><CODE><em>Nullable</em></CODE></A></li>
   <li><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getDefaultValue()"><CODE><em>Default Value</em></CODE></A></li>
   <li><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getScopeCheck()"><CODE><em>Scope Check</em></CODE></A></li>
   <li><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isScopeChecked()"><CODE><em>Scope Checked</em></CODE></A></li>
 </ul>
 </p>
<P>
<DL>
<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/SQLTablesPackage.html#getColumn()"><CODE>SQLTablesPackage.getColumn()</CODE></A></DL>
<HR>

<P>
<!-- ======== INNER CLASS SUMMARY ======== -->


<!-- =========== FIELD SUMMARY =========== -->


<!-- ======== CONSTRUCTOR SUMMARY ======== -->


<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getDefaultValue()">getDefaultValue</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Default Value</b></em>' attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/expressions/ValueExpression.html">ValueExpression</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getGenerateExpression()">getGenerateExpression</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Generate Expression</b></em>' reference.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/IdentitySpecifier.html">IdentitySpecifier</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getIdentitySpecifier()">getIdentitySpecifier</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Identity Specifier</b></em>' containment reference.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/ReferentialActionType.html">ReferentialActionType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getScopeCheck()">getScopeCheck</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Scope Check</b></em>' attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Table.html">Table</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getTable()">getTable</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Table</b></em>' container reference.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isImplementationDependent()">isImplementationDependent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Implementation Dependent</b></em>' attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isNullable()">isNullable</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Nullable</b></em>' attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isPartOfForeignKey()">isPartOfForeignKey</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!-- begin-user-doc -->
 <!-- end-user-doc --></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isPartOfPrimaryKey()">isPartOfPrimaryKey</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!-- begin-user-doc -->
 <!-- end-user-doc --></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isPartOfUniqueConstraint()">isPartOfUniqueConstraint</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!-- begin-user-doc -->
 <!-- end-user-doc --></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isScopeChecked()">isScopeChecked</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value of the '<em><b>Scope Checked</b></em>' attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setDefaultValue(java.lang.String)">setDefaultValue</A></B>(java.lang.String&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getDefaultValue()"><CODE><em>Default Value</em></CODE></A>' attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setGenerateExpression(org.eclipse.wst.rdb.internal.models.sql.expressions.ValueExpression)">setGenerateExpression</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/expressions/ValueExpression.html">ValueExpression</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getGenerateExpression()"><CODE><em>Generate Expression</em></CODE></A>' reference.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setIdentitySpecifier(org.eclipse.wst.rdb.internal.models.sql.schema.IdentitySpecifier)">setIdentitySpecifier</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/IdentitySpecifier.html">IdentitySpecifier</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getIdentitySpecifier()"><CODE><em>Identity Specifier</em></CODE></A>' containment reference.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setImplementationDependent(boolean)">setImplementationDependent</A></B>(boolean&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isImplementationDependent()"><CODE><em>Implementation Dependent</em></CODE></A>' attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setNullable(boolean)">setNullable</A></B>(boolean&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isNullable()"><CODE><em>Nullable</em></CODE></A>' attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setScopeCheck(org.eclipse.wst.rdb.internal.models.sql.schema.ReferentialActionType)">setScopeCheck</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/ReferentialActionType.html">ReferentialActionType</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getScopeCheck()"><CODE><em>Scope Check</em></CODE></A>' attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setScopeChecked(boolean)">setScopeChecked</A></B>(boolean&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isScopeChecked()"><CODE><em>Scope Checked</em></CODE></A>' attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setTable(org.eclipse.wst.rdb.internal.models.sql.tables.Table)">setTable</A></B>(<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Table.html">Table</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getTable()"><CODE><em>Table</em></CODE></A>' container reference.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.wst.rdb.internal.models.sql.schema.TypedElement"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from interface org.eclipse.wst.rdb.internal.models.sql.schema.<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/TypedElement.html">TypedElement</A></B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/TypedElement.html#getContainedType()">getContainedType</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/TypedElement.html#getDataType()">getDataType</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/TypedElement.html#getReferencedType()">getReferencedType</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/TypedElement.html#setContainedType(org.eclipse.wst.rdb.internal.models.sql.datatypes.SQLDataType)">setContainedType</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/TypedElement.html#setDataType(org.eclipse.wst.rdb.internal.models.sql.datatypes.DataType)">setDataType</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/TypedElement.html#setReferencedType(org.eclipse.wst.rdb.internal.models.sql.datatypes.UserDefinedType)">setReferencedType</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.wst.rdb.internal.models.sql.schema.SQLObject"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from interface org.eclipse.wst.rdb.internal.models.sql.schema.<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html">SQLObject</A></B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html#addEAnnotation(java.lang.String)">addEAnnotation</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html#addEAnnotationDetail(org.eclipse.emf.ecore.EAnnotation, java.lang.String, java.lang.String)">addEAnnotationDetail</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html#getDependencies()">getDependencies</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html#getDescription()">getDescription</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html#getEAnnotation(java.lang.String)">getEAnnotation</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html#getEAnnotationDetail(org.eclipse.emf.ecore.EAnnotation, java.lang.String)">getEAnnotationDetail</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html#getLabel()">getLabel</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html#removeEAnnotationDetail(org.eclipse.emf.ecore.EAnnotation, java.lang.String)">removeEAnnotationDetail</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html#setAnnotationDetail(org.eclipse.emf.ecore.EAnnotation, java.lang.String, java.lang.String)">setAnnotationDetail</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html#setDescription(java.lang.String)">setDescription</A>, <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/SQLObject.html#setLabel(java.lang.String)">setLabel</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.emf.ecore.ENamedElement"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from interface org.eclipse.emf.ecore.ENamedElement</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>getName, setName</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.emf.ecore.EModelElement"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from interface org.eclipse.emf.ecore.EModelElement</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>getEAnnotations</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.emf.ecore.EObject"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from interface org.eclipse.emf.ecore.EObject</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eIsProxy, eIsSet, eResource, eSet, eUnset</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.emf.common.notify.Notifier"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from interface org.eclipse.emf.common.notify.Notifier</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>eAdapters, eDeliver, eNotify, eSetDeliver</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->


<!-- ========= CONSTRUCTOR DETAIL ======== -->


<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="getTable()"><!-- --></A><H3>
getTable</H3>
<PRE>
public <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Table.html">Table</A> <B>getTable</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Table</b></em>' container reference.
 It is bidirectional and its opposite is '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Table.html#getColumns()"><CODE><em>Columns</em></CODE></A>'.
 <!-- 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 --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the value of the '<em>Table</em>' container reference.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setTable(org.eclipse.wst.rdb.internal.models.sql.tables.Table)"><CODE>setTable(Table)</CODE></A>, 
<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/SQLTablesPackage.html#getColumn_Table()"><CODE>SQLTablesPackage.getColumn_Table()</CODE></A>, 
<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Table.html#getColumns()"><CODE>Table.getColumns()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setTable(org.eclipse.wst.rdb.internal.models.sql.tables.Table)"><!-- --></A><H3>
setTable</H3>
<PRE>
public void <B>setTable</B>(<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Table.html">Table</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getTable()"><CODE><em>Table</em></CODE></A>' container reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Table</em>' container reference.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getTable()"><CODE>getTable()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getIdentitySpecifier()"><!-- --></A><H3>
getIdentitySpecifier</H3>
<PRE>
public <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/IdentitySpecifier.html">IdentitySpecifier</A> <B>getIdentitySpecifier</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Identity Specifier</b></em>' containment reference.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Identity Specifier</em>' containment reference isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the value of the '<em>Identity Specifier</em>' containment reference.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setIdentitySpecifier(org.eclipse.wst.rdb.internal.models.sql.schema.IdentitySpecifier)"><CODE>setIdentitySpecifier(IdentitySpecifier)</CODE></A>, 
<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/SQLTablesPackage.html#getColumn_IdentitySpecifier()"><CODE>SQLTablesPackage.getColumn_IdentitySpecifier()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setIdentitySpecifier(org.eclipse.wst.rdb.internal.models.sql.schema.IdentitySpecifier)"><!-- --></A><H3>
setIdentitySpecifier</H3>
<PRE>
public void <B>setIdentitySpecifier</B>(<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/IdentitySpecifier.html">IdentitySpecifier</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getIdentitySpecifier()"><CODE><em>Identity Specifier</em></CODE></A>' containment reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Identity Specifier</em>' containment reference.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getIdentitySpecifier()"><CODE>getIdentitySpecifier()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getGenerateExpression()"><!-- --></A><H3>
getGenerateExpression</H3>
<PRE>
public <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/expressions/ValueExpression.html">ValueExpression</A> <B>getGenerateExpression</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Generate Expression</b></em>' reference.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Generate Expression</em>' reference isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the value of the '<em>Generate Expression</em>' reference.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setGenerateExpression(org.eclipse.wst.rdb.internal.models.sql.expressions.ValueExpression)"><CODE>setGenerateExpression(ValueExpression)</CODE></A>, 
<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/SQLTablesPackage.html#getColumn_GenerateExpression()"><CODE>SQLTablesPackage.getColumn_GenerateExpression()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setGenerateExpression(org.eclipse.wst.rdb.internal.models.sql.expressions.ValueExpression)"><!-- --></A><H3>
setGenerateExpression</H3>
<PRE>
public void <B>setGenerateExpression</B>(<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/expressions/ValueExpression.html">ValueExpression</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getGenerateExpression()"><CODE><em>Generate Expression</em></CODE></A>' reference.
 <!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Generate Expression</em>' reference.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getGenerateExpression()"><CODE>getGenerateExpression()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="isImplementationDependent()"><!-- --></A><H3>
isImplementationDependent</H3>
<PRE>
public boolean <B>isImplementationDependent</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Implementation Dependent</b></em>' attribute.
 The default value is <code>"False"</code>.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Implementation Dependent</em>' attribute isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the value of the '<em>Implementation Dependent</em>' attribute.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setImplementationDependent(boolean)"><CODE>setImplementationDependent(boolean)</CODE></A>, 
<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/SQLTablesPackage.html#getColumn_ImplementationDependent()"><CODE>SQLTablesPackage.getColumn_ImplementationDependent()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setImplementationDependent(boolean)"><!-- --></A><H3>
setImplementationDependent</H3>
<PRE>
public void <B>setImplementationDependent</B>(boolean&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isImplementationDependent()"><CODE><em>Implementation Dependent</em></CODE></A>' attribute.
 <!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Implementation Dependent</em>' attribute.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isImplementationDependent()"><CODE>isImplementationDependent()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="isNullable()"><!-- --></A><H3>
isNullable</H3>
<PRE>
public boolean <B>isNullable</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Nullable</b></em>' attribute.
 The default value is <code>"True"</code>.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Nullable</em>' attribute isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the value of the '<em>Nullable</em>' attribute.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setNullable(boolean)"><CODE>setNullable(boolean)</CODE></A>, 
<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/SQLTablesPackage.html#getColumn_Nullable()"><CODE>SQLTablesPackage.getColumn_Nullable()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setNullable(boolean)"><!-- --></A><H3>
setNullable</H3>
<PRE>
public void <B>setNullable</B>(boolean&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isNullable()"><CODE><em>Nullable</em></CODE></A>' attribute.
 <!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Nullable</em>' attribute.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isNullable()"><CODE>isNullable()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getDefaultValue()"><!-- --></A><H3>
getDefaultValue</H3>
<PRE>
public java.lang.String <B>getDefaultValue</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Default Value</b></em>' attribute.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Default Value</em>' attribute isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the value of the '<em>Default Value</em>' attribute.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setDefaultValue(java.lang.String)"><CODE>setDefaultValue(String)</CODE></A>, 
<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/SQLTablesPackage.html#getColumn_DefaultValue()"><CODE>SQLTablesPackage.getColumn_DefaultValue()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setDefaultValue(java.lang.String)"><!-- --></A><H3>
setDefaultValue</H3>
<PRE>
public void <B>setDefaultValue</B>(java.lang.String&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getDefaultValue()"><CODE><em>Default Value</em></CODE></A>' attribute.
 <!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Default Value</em>' attribute.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getDefaultValue()"><CODE>getDefaultValue()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getScopeCheck()"><!-- --></A><H3>
getScopeCheck</H3>
<PRE>
public <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/ReferentialActionType.html">ReferentialActionType</A> <B>getScopeCheck</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Scope Check</b></em>' attribute.
 The default value is <code>"NO_ACTION"</code>.
 The literals are from the enumeration <A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/ReferentialActionType.html"><CODE>ReferentialActionType</CODE></A>.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Scope Check</em>' attribute isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the value of the '<em>Scope Check</em>' attribute.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/ReferentialActionType.html"><CODE>ReferentialActionType</CODE></A>, 
<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setScopeCheck(org.eclipse.wst.rdb.internal.models.sql.schema.ReferentialActionType)"><CODE>setScopeCheck(ReferentialActionType)</CODE></A>, 
<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/SQLTablesPackage.html#getColumn_ScopeCheck()"><CODE>SQLTablesPackage.getColumn_ScopeCheck()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setScopeCheck(org.eclipse.wst.rdb.internal.models.sql.schema.ReferentialActionType)"><!-- --></A><H3>
setScopeCheck</H3>
<PRE>
public void <B>setScopeCheck</B>(<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/ReferentialActionType.html">ReferentialActionType</A>&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getScopeCheck()"><CODE><em>Scope Check</em></CODE></A>' attribute.
 <!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Scope Check</em>' attribute.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/schema/ReferentialActionType.html"><CODE>ReferentialActionType</CODE></A>, 
<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#getScopeCheck()"><CODE>getScopeCheck()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="isScopeChecked()"><!-- --></A><H3>
isScopeChecked</H3>
<PRE>
public boolean <B>isScopeChecked</B>()</PRE>
<DL>
<DD>Returns the value of the '<em><b>Scope Checked</b></em>' attribute.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Scope Checked</em>' attribute isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the value of the '<em>Scope Checked</em>' attribute.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#setScopeChecked(boolean)"><CODE>setScopeChecked(boolean)</CODE></A>, 
<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/SQLTablesPackage.html#getColumn_ScopeChecked()"><CODE>SQLTablesPackage.getColumn_ScopeChecked()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setScopeChecked(boolean)"><!-- --></A><H3>
setScopeChecked</H3>
<PRE>
public void <B>setScopeChecked</B>(boolean&nbsp;value)</PRE>
<DL>
<DD>Sets the value of the '<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isScopeChecked()"><CODE><em>Scope Checked</em></CODE></A>' attribute.
 <!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the new value of the '<em>Scope Checked</em>' attribute.<DT><B>See Also: </B><DD><A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/Column.html#isScopeChecked()"><CODE>isScopeChecked()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="isPartOfForeignKey()"><!-- --></A><H3>
isPartOfForeignKey</H3>
<PRE>
public boolean <B>isPartOfForeignKey</B>()</PRE>
<DL>
<DD><!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isPartOfUniqueConstraint()"><!-- --></A><H3>
isPartOfUniqueConstraint</H3>
<PRE>
public boolean <B>isPartOfUniqueConstraint</B>()</PRE>
<DL>
<DD><!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isPartOfPrimaryKey()"><!-- --></A><H3>
isPartOfPrimaryKey</H3>
<PRE>
public boolean <B>isPartOfPrimaryKey</B>()</PRE>
<DL>
<DD><!-- begin-user-doc -->
 <!-- end-user-doc --><DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_bottom"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Column.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/BaseTable.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../../../org/eclipse/wst/rdb/internal/models/sql/tables/DerivedTable.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Column.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY: &nbsp;INNER&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>

</BODY>
</HTML>
