Package com.mckoi.database.interpret

## Class ConstraintDef

- java.lang.Object
- - com.mckoi.database.interpret.ConstraintDef

All Implemented Interfaces:
  `StatementTreeObject`, `java.io.Serializable`, `java.lang.Cloneable`

    public final class ConstraintDef
    extends java.lang.Object
    implements java.io.Serializable, StatementTreeObject, java.lang.Cloneable

Represents a constraint definition (description) for a table.

Author:
  Tobias Downer
See Also:
  Serialized Form

### Field Summary

Fields
`static int` `CHECK` A CHECK constraint.
`static int` `FOREIGN_KEY` A FOREIGN_KEY constraint.
`static int` `PRIMARY_KEY` A PRIMARY_KEY constraint.
`static int` `UNIQUE` A UNIQUE constraint.

### Constructor Summary

Constructors
`ConstraintDef()`

### Method Summary

All Methods Instance Methods Concrete Methods
`java.lang.Object` `clone()` Performs a DEEP clone of this object if it is mutable, or a deep clone of its mutable members.
`java.lang.String[]` `getColumnList()` Returns the first column list as a string array.
`java.lang.String[]` `getColumnList2()` Returns the first column list as a string array.
`java.lang.String` `getDeleteRule()` Returns the delete rule if this is a foreign key reference.
`java.lang.String` `getUpdateRule()` Returns the update rule if this is a foreign key reference.
`void` `prepareExpressions​(ExpressionPreparer preparer)` Prepares all expressions in this statement tree object by passing the ExpressionPreparer object to the 'prepare' method of the expression.
`void` `setCheck​(Expression exp)` Sets object up for a check constraint.
`void` `setForeignKey​(java.lang.String ref_table, java.util.ArrayList col_list, java.util.ArrayList ref_col_list, java.lang.String delete_rule, java.lang.String update_rule)` Sets object up for foreign key reference.
`void` `setInitiallyDeferred()` Sets that this constraint is initially deferred.
`void` `setName​(java.lang.String name)` Sets the name of the constraint.
`void` `setNotDeferrable()` Sets that this constraint is not deferrable.
`void` `setPrimaryKey​(java.util.ArrayList list)` Sets object up for a primary key constraint.
`void` `setUnique​(java.util.ArrayList list)` Sets object up for a unique constraint.

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### PRIMARY_KEY

    public static final int PRIMARY_KEY

A PRIMARY_KEY constraint. With this constraint, the 'column_list' list contains the names of the columns in this table that are defined as the primary key. There may only be one primary key constraint per table.

See Also:
  Constant Field Values

#### UNIQUE

    public static final int UNIQUE

A UNIQUE constraint. With this constraint, the 'column_list' list contains the names of the columns in this table that must be unique.

See Also:
  Constant Field Values

#### FOREIGN_KEY

    public static final int FOREIGN_KEY

A FOREIGN_KEY constraint. With this constraint, the 'table_name' string contains the name of the table that this is a foreign key for, the 'column_list' list contains the list of foreign key columns, and 'column_list2' optionally contains the referenced columns.

See Also:
  Constant Field Values

#### CHECK

    public static final int CHECK

A CHECK constraint. With this constraint, the 'expression' object contains the expression that must evaluate to true when adding a column to the table.

See Also:
  Constant Field Values

### Constructor Detail

#### ConstraintDef

    public ConstraintDef()

### Method Detail

#### setName

    public void setName​(java.lang.String name)

Sets the name of the constraint.

#### setPrimaryKey

    public void setPrimaryKey​(java.util.ArrayList list)

Sets object up for a primary key constraint.

#### setUnique

    public void setUnique​(java.util.ArrayList list)

Sets object up for a unique constraint.

#### setCheck

    public void setCheck​(Expression exp)

Sets object up for a check constraint.

#### setForeignKey

    public void setForeignKey​(java.lang.String ref_table,
                              java.util.ArrayList col_list,
                              java.util.ArrayList ref_col_list,
                              java.lang.String delete_rule,
                              java.lang.String update_rule)

Sets object up for foreign key reference.

#### setInitiallyDeferred

    public void setInitiallyDeferred()

Sets that this constraint is initially deferred.

#### setNotDeferrable

    public void setNotDeferrable()

Sets that this constraint is not deferrable.

#### getColumnList

    public java.lang.String[] getColumnList()

Returns the first column list as a string array.

#### getColumnList2

    public java.lang.String[] getColumnList2()

Returns the first column list as a string array.

#### getDeleteRule

    public java.lang.String getDeleteRule()

Returns the delete rule if this is a foreign key reference.

#### getUpdateRule

    public java.lang.String getUpdateRule()

Returns the update rule if this is a foreign key reference.

#### prepareExpressions

    public void prepareExpressions​(ExpressionPreparer preparer)
                            throws DatabaseException

Description copied from interface: `StatementTreeObject`
Prepares all expressions in this statement tree object by passing the ExpressionPreparer object to the 'prepare' method of the expression.

Specified by:
  `prepareExpressions` in interface `StatementTreeObject`
Throws:
  `DatabaseException`

#### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

Description copied from interface: `StatementTreeObject`
Performs a DEEP clone of this object if it is mutable, or a deep clone of its mutable members. If the object is immutable then it may return 'this'.

Specified by:
  `clone` in interface `StatementTreeObject`
Overrides:
  `clone` in class `java.lang.Object`
Throws:
  `java.lang.CloneNotSupportedException`