org.h2.constraint
Class ConstraintReferential

java.lang.Object
  extended by org.h2.engine.DbObjectBase
      extended by org.h2.schema.SchemaObjectBase
          extended by org.h2.constraint.Constraint
              extended by org.h2.constraint.ConstraintReferential
All Implemented Interfaces:
java.lang.Comparable<Constraint>, DbObject, SchemaObject

public class ConstraintReferential
extends Constraint

A referential constraint.


Field Summary
static int CASCADE
          The action is to cascade the operation.
static int RESTRICT
          The action is to restrict the operation.
static int SET_DEFAULT
          The action is to set the value to the default value.
static int SET_NULL
          The action is to set the value to NULL.
 
Fields inherited from class org.h2.constraint.Constraint
CHECK, PRIMARY_KEY, REFERENTIAL, table, UNIQUE
 
Fields inherited from class org.h2.engine.DbObjectBase
comment, database, trace
 
Fields inherited from interface org.h2.engine.DbObject
AGGREGATE, COMMENT, CONSTANT, CONSTRAINT, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, TABLE_OR_VIEW, TRIGGER, USER, USER_DATATYPE
 
Constructor Summary
ConstraintReferential(Schema schema, int id, java.lang.String name, Table table)
           
 
Method Summary
 void checkExistingData(Session session)
          Check the existing data.
 void checkRow(Session session, Table t, Row oldRow, Row newRow)
          Check if this row fulfils the constraint.
 boolean containsColumn(Column col)
          Check if this constraint contains the given column.
 IndexColumn[] getColumns()
           
 java.lang.String getConstraintType()
          The constraint type name
 java.lang.String getCreateSQL()
          Build a SQL statement to re-create this object.
 java.lang.String getCreateSQLForCopy(Table forTable, java.lang.String quotedName)
          Create the SQL statement of this object so a copy of the table can be made.
 java.lang.String getCreateSQLForCopy(Table forTable, Table forRefTable, java.lang.String quotedName, boolean internalIndex)
          Create the SQL statement of this object so a copy of the table can be made.
 java.lang.String getCreateSQLWithoutIndexes()
          Get the SQL statement to create this constraint.
 int getDeleteAction()
           
 IndexColumn[] getRefColumns()
           
 Table getRefTable()
           
 Index getUniqueIndex()
          Get the unique index used to enforce this constraint, or null if no index is used.
 int getUpdateAction()
           
 boolean isBefore()
          Check if this constraint needs to be checked before updating the data.
 void rebuild()
          This method is called after a related table has changed (the table was renamed, or columns have been renamed).
 void removeChildrenAndResources(Session session)
          Remove all dependent objects and free all resources (files, blocks in files) of this object.
 void setColumns(IndexColumn[] cols)
           
 void setDeleteAction(int action)
          Set the action to apply (restrict, cascade,...) on a delete.
 void setIndex(Index index, boolean isOwner)
          Set the index to use for this constraint.
 void setIndexOwner(Index index)
          This index is now the owner of the specified index.
 void setRefColumns(IndexColumn[] refCols)
           
 void setRefIndex(Index refIndex, boolean isRefOwner)
          Set the index of the referenced table to use for this constraint.
 void setRefTable(Table refTable)
           
 void setUpdateAction(int action)
          Set the action to apply (restrict, cascade,...) on an update.
 boolean usesIndex(Index idx)
          Check if this constraint needs the specified index.
 
Methods inherited from class org.h2.constraint.Constraint
checkRename, compareTo, getDropSQL, getTable, getType, isHidden
 
Methods inherited from class org.h2.schema.SchemaObjectBase
getSchema, getSQL, initSchemaObjectBase
 
Methods inherited from class org.h2.engine.DbObjectBase
getChildren, getComment, getDatabase, getId, getModificationId, getName, initDbObjectBase, invalidate, isTemporary, rename, setComment, setModified, setObjectName, setTemporary, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.h2.engine.DbObject
getChildren, getComment, getDatabase, getId, getModificationId, getName, isTemporary, rename, setComment, setModified, setTemporary
 

Field Detail

RESTRICT

public static final int RESTRICT
The action is to restrict the operation.

See Also:
Constant Field Values

CASCADE

public static final int CASCADE
The action is to cascade the operation.

See Also:
Constant Field Values

SET_DEFAULT

public static final int SET_DEFAULT
The action is to set the value to the default value.

See Also:
Constant Field Values

SET_NULL

public static final int SET_NULL
The action is to set the value to NULL.

See Also:
Constant Field Values
Constructor Detail

ConstraintReferential

public ConstraintReferential(Schema schema,
                             int id,
                             java.lang.String name,
                             Table table)
Method Detail

getConstraintType

public java.lang.String getConstraintType()
Description copied from class: Constraint
The constraint type name

Specified by:
getConstraintType in class Constraint
Returns:
the name

getCreateSQLForCopy

public java.lang.String getCreateSQLForCopy(Table forTable,
                                            java.lang.String quotedName)
Create the SQL statement of this object so a copy of the table can be made.

Specified by:
getCreateSQLForCopy in interface DbObject
Specified by:
getCreateSQLForCopy in class DbObjectBase
Parameters:
forTable - the table to create the object for
quotedName - the name of this object (quoted if necessary)
Returns:
the SQL statement

getCreateSQLForCopy

public java.lang.String getCreateSQLForCopy(Table forTable,
                                            Table forRefTable,
                                            java.lang.String quotedName,
                                            boolean internalIndex)
Create the SQL statement of this object so a copy of the table can be made.

Parameters:
forTable - the table to create the object for
forRefTable - the referenced table
quotedName - the name of this object (quoted if necessary)
internalIndex - add the index name to the statement
Returns:
the SQL statement

getCreateSQLWithoutIndexes

public java.lang.String getCreateSQLWithoutIndexes()
Description copied from class: Constraint
Get the SQL statement to create this constraint.

Specified by:
getCreateSQLWithoutIndexes in class Constraint
Returns:
the SQL statement

getCreateSQL

public java.lang.String getCreateSQL()
Description copied from class: DbObjectBase
Build a SQL statement to re-create this object.

Specified by:
getCreateSQL in interface DbObject
Specified by:
getCreateSQL in class DbObjectBase
Returns:
the SQL statement

setColumns

public void setColumns(IndexColumn[] cols)

getColumns

public IndexColumn[] getColumns()

setRefColumns

public void setRefColumns(IndexColumn[] refCols)

getRefColumns

public IndexColumn[] getRefColumns()

setRefTable

public void setRefTable(Table refTable)

setIndex

public void setIndex(Index index,
                     boolean isOwner)
Set the index to use for this constraint.

Parameters:
index - the index
isOwner - true if the index is generated by the system and belongs to this constraint

setRefIndex

public void setRefIndex(Index refIndex,
                        boolean isRefOwner)
Set the index of the referenced table to use for this constraint.

Parameters:
refIndex - the index
isRefOwner - true if the index is generated by the system and belongs to this constraint

removeChildrenAndResources

public void removeChildrenAndResources(Session session)
Description copied from class: DbObjectBase
Remove all dependent objects and free all resources (files, blocks in files) of this object.

Specified by:
removeChildrenAndResources in interface DbObject
Specified by:
removeChildrenAndResources in class DbObjectBase
Parameters:
session - the session

checkRow

public void checkRow(Session session,
                     Table t,
                     Row oldRow,
                     Row newRow)
Description copied from class: Constraint
Check if this row fulfils the constraint. This method throws an exception if not.

Specified by:
checkRow in class Constraint
Parameters:
session - the session
t - the table
oldRow - the old row
newRow - the new row

getDeleteAction

public int getDeleteAction()

setDeleteAction

public void setDeleteAction(int action)
Set the action to apply (restrict, cascade,...) on a delete.

Parameters:
action - the action

getUpdateAction

public int getUpdateAction()

setUpdateAction

public void setUpdateAction(int action)
Set the action to apply (restrict, cascade,...) on an update.

Parameters:
action - the action

rebuild

public void rebuild()
Description copied from class: Constraint
This method is called after a related table has changed (the table was renamed, or columns have been renamed).

Specified by:
rebuild in class Constraint

getRefTable

public Table getRefTable()
Overrides:
getRefTable in class Constraint

usesIndex

public boolean usesIndex(Index idx)
Description copied from class: Constraint
Check if this constraint needs the specified index.

Specified by:
usesIndex in class Constraint
Parameters:
idx - the index
Returns:
true if the index is used

setIndexOwner

public void setIndexOwner(Index index)
Description copied from class: Constraint
This index is now the owner of the specified index.

Specified by:
setIndexOwner in class Constraint
Parameters:
index - the index

containsColumn

public boolean containsColumn(Column col)
Description copied from class: Constraint
Check if this constraint contains the given column.

Specified by:
containsColumn in class Constraint
Parameters:
col - the column
Returns:
true if it does

isBefore

public boolean isBefore()
Description copied from class: Constraint
Check if this constraint needs to be checked before updating the data.

Specified by:
isBefore in class Constraint
Returns:
true if it must be checked before updating

checkExistingData

public void checkExistingData(Session session)
Description copied from class: Constraint
Check the existing data. This method is called if the constraint is added after data has been inserted into the table.

Specified by:
checkExistingData in class Constraint
Parameters:
session - the session

getUniqueIndex

public Index getUniqueIndex()
Description copied from class: Constraint
Get the unique index used to enforce this constraint, or null if no index is used.

Specified by:
getUniqueIndex in class Constraint
Returns:
the index