Quadcap Embeddable Database

com.quadcap.sql.ForeignKeyConstraint Class Reference

Inheritance diagram for com.quadcap.sql.ForeignKeyConstraint:

com.quadcap.sql.Constraint Externalizable Externalizable com.quadcap.sql.ExportedKeyConstraint com.quadcap.sql.ImportedKeyConstraint List of all members.

Detailed Description

Abstract base class for imported and exported key constraints.

Author:
Stan Bailes

Definition at line 63 of file ForeignKeyConstraint.java.

Public Member Functions

 ForeignKeyConstraint ()
 Default constructor.

 ForeignKeyConstraint (String name, String fTableName)
 ForeignKeyConstraint (String name, Vector colNames, String fTableName, Vector fColNames)
void resetColumns () throws SQLException
 Reset any mapped columns (e.g.

void checkInsert (Session session, Row row) throws SQLException, IOException
 ---INSERT Called before a row is INSERTED, with an opportunity to signal a constraint violation if one can be detected.

void applyInsert (Session session, Row row, long rowId, Constraint activeIndex) throws SQLException, IOException
 Called after the specified row has been inserted, with the resulting row ID, and with the active index.

void checkUpdate (Session session, Row row, long rowId) throws SQLException, IOException
void applyUpdate (Session session, byte[] oldKey, Row row, Row oldRow, long rowId, Constraint activeIndex) throws SQLException, IOException
 Called after a row has been updated, with the old row, old key, new row and row ID.

void checkDelete (Session session, Row row, long rowId) throws SQLException, IOException
 ----DELETE Called before a row is DELETED, with an opportunity to signal a constraint violation if one can be detected.

void applyDelete (Session session, Row row, long rowId, Constraint activeIndex) throws SQLException, IOException
 Called after a row has been deleted, with the old row and row ID.

final boolean isDeferred ()
 Is this constraint 'deferred'?

byte[] makeKey (Session session, Row row) throws SQLException
 Create a candidate key for a row from this table.

byte[] makeFKey (Session session, Row row) throws IOException, SQLException
 Create a candidate key for a row from the foreign table.

void setForeignColumn (String name)
void readExternal (ObjectInput in) throws IOException, ClassNotFoundException
 Read me from a stream.

void writeExternal (ObjectOutput out) throws IOException
 Write me to a stream.

String getFTableName ()
void setFTableName (String s)
Table getFTable (Database db) throws SQLException, IOException
void add (Session session) throws SQLException, IOException
 If you care, remember to 'extend' and embrace.

abstract void delete (Session session) throws SQLException, IOException
 Called when the constraint itself is being removed.

int[] getFCols (Database db) throws SQLException, IOException
String toString ()
 Return a displayable representation for debugging.


Package Functions

final Comparator getComparator () throws SQLException
boolean isSelfReferencing (Database db) throws IOException, SQLException

Package Attributes

String fTableName
Vector fColNames
Table fTable
UniqueConstraint fConstraint
int[] fCols
transient Comparator compare

Private Member Functions

final byte[] makeKey (Row row, int[] k) throws SQLException


Constructor & Destructor Documentation

com.quadcap.sql.ForeignKeyConstraint.ForeignKeyConstraint  ) 
 

Default constructor.

Definition at line 77 of file ForeignKeyConstraint.java.

com.quadcap.sql.ForeignKeyConstraint.ForeignKeyConstraint String  name,
String  fTableName
 

Definition at line 79 of file ForeignKeyConstraint.java.

com.quadcap.sql.ForeignKeyConstraint.ForeignKeyConstraint String  name,
Vector  colNames,
String  fTableName,
Vector  fColNames
 

Definition at line 84 of file ForeignKeyConstraint.java.


Member Function Documentation

void com.quadcap.sql.ForeignKeyConstraint.add Session  session  )  throws SQLException, IOException [virtual]
 

If you care, remember to 'extend' and embrace.

Implements com.quadcap.sql.Constraint.

Reimplemented in com.quadcap.sql.ImportedKeyConstraint.

Definition at line 213 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.add().

Referenced by com.quadcap.sql.ForeignKeyConstraint.add().

void com.quadcap.sql.ForeignKeyConstraint.applyDelete Session  session,
Row  row,
long  rowId,
Constraint  activeIndex
throws SQLException, IOException [virtual]
 

Called after a row has been deleted, with the old row and row ID.

Constraints which maintain state (such as an index) would extend this class and implement this method to update the index.

Implements com.quadcap.sql.Constraint.

Reimplemented in com.quadcap.sql.ImportedKeyConstraint.

Definition at line 126 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.applyDelete().

Referenced by com.quadcap.sql.ForeignKeyConstraint.applyDelete().

void com.quadcap.sql.ForeignKeyConstraint.applyInsert Session  session,
Row  row,
long  rowId,
Constraint  activeIndex
throws SQLException, IOException [virtual]
 

Called after the specified row has been inserted, with the resulting row ID, and with the active index.

Constraints which maintain state (such as an index) would extend this class and implement this method to update the index

Implements com.quadcap.sql.Constraint.

Reimplemented in com.quadcap.sql.ImportedKeyConstraint.

Definition at line 104 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.applyInsert().

Referenced by com.quadcap.sql.ForeignKeyConstraint.applyInsert().

void com.quadcap.sql.ForeignKeyConstraint.applyUpdate Session  session,
byte[]  oldKey,
Row  row,
Row  oldRow,
long  rowId,
Constraint  activeIndex
throws SQLException, IOException [virtual]
 

Called after a row has been updated, with the old row, old key, new row and row ID.

Constraints which maintain state (such as an index) would extend this class and implement this method to update the index.

Implements com.quadcap.sql.Constraint.

Definition at line 115 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.applyUpdate().

Referenced by com.quadcap.sql.ForeignKeyConstraint.applyUpdate().

void com.quadcap.sql.ForeignKeyConstraint.checkDelete Session  session,
Row  row,
long  rowId
throws SQLException, IOException [virtual]
 

----DELETE Called before a row is DELETED, with an opportunity to signal a constraint violation if one can be detected.

Implements com.quadcap.sql.Constraint.

Reimplemented in com.quadcap.sql.ExportedKeyConstraint.

Definition at line 121 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.checkDelete().

Referenced by com.quadcap.sql.ForeignKeyConstraint.checkDelete().

void com.quadcap.sql.ForeignKeyConstraint.checkInsert Session  session,
Row  row
throws SQLException, IOException [virtual]
 

---INSERT Called before a row is INSERTED, with an opportunity to signal a constraint violation if one can be detected.

Implements com.quadcap.sql.Constraint.

Reimplemented in com.quadcap.sql.ImportedKeyConstraint.

Definition at line 99 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.checkInsert().

Referenced by com.quadcap.sql.ForeignKeyConstraint.checkInsert().

void com.quadcap.sql.ForeignKeyConstraint.checkUpdate Session  session,
Row  row,
long  rowId
throws SQLException, IOException
 

Definition at line 110 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.checkUpdate().

Referenced by com.quadcap.sql.ForeignKeyConstraint.checkUpdate().

abstract void com.quadcap.sql.ForeignKeyConstraint.delete Session  session  )  throws SQLException, IOException [pure virtual]
 

Called when the constraint itself is being removed.

Constraints which allocate resources of any kind should release them here since they are about to be discarded and gc'ed.

Implements com.quadcap.sql.Constraint.

Implemented in com.quadcap.sql.ExportedKeyConstraint, and com.quadcap.sql.ImportedKeyConstraint.

final Comparator com.quadcap.sql.ForeignKeyConstraint.getComparator  )  throws SQLException [package]
 

Definition at line 139 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.compare, and com.quadcap.sql.Constraint.getColumns().

Referenced by com.quadcap.sql.ExportedKeyConstraint.checkKeyRemoval(), com.quadcap.sql.ImportedKeyConstraint.checkUpdate(), and com.quadcap.sql.ExportedKeyConstraint.checkUpdate().

int [] com.quadcap.sql.ForeignKeyConstraint.getFCols Database  db  )  throws SQLException, IOException
 

Definition at line 222 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.fColNames, com.quadcap.sql.ForeignKeyConstraint.fCols, com.quadcap.sql.ForeignKeyConstraint.fConstraint, com.quadcap.sql.ForeignKeyConstraint.fTable, com.quadcap.sql.ForeignKeyConstraint.getFCols(), com.quadcap.sql.Table.getIndexForColumns(), com.quadcap.sql.TupleImpl.getName(), com.quadcap.sql.Table.getPrimaryKey(), and com.quadcap.sql.TupleImpl.mapColumns().

Referenced by com.quadcap.sql.ForeignKeyConstraint.getFCols(), and com.quadcap.sql.ForeignKeyConstraint.makeFKey().

Table com.quadcap.sql.ForeignKeyConstraint.getFTable Database  db  )  throws SQLException, IOException
 

Definition at line 193 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.fTable, com.quadcap.sql.ForeignKeyConstraint.fTableName, and com.quadcap.sql.ForeignKeyConstraint.getFTable().

Referenced by com.quadcap.sql.DeleteConstraint.deleteForeign(), and com.quadcap.sql.ForeignKeyConstraint.getFTable().

String com.quadcap.sql.ForeignKeyConstraint.getFTableName  ) 
 

Definition at line 185 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.fTableName.

Referenced by com.quadcap.sql.StmtDropTable.execute(), com.quadcap.sql.StmtRenameTable.rename(), and com.quadcap.sql.StmtRenameTable.renameForeignKeys().

final boolean com.quadcap.sql.ForeignKeyConstraint.isDeferred  ) 
 

Is this constraint 'deferred'?

Reimplemented from com.quadcap.sql.Constraint.

Definition at line 135 of file ForeignKeyConstraint.java.

Referenced by com.quadcap.sql.ImportedKeyConstraint.checkUpdate(), and com.quadcap.sql.ExportedKeyConstraint.getExportedKeys().

boolean com.quadcap.sql.ForeignKeyConstraint.isSelfReferencing Database  db  )  throws IOException, SQLException [package]
 

Definition at line 240 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.isSelfReferencing().

Referenced by com.quadcap.sql.StmtDropTable.execute(), and com.quadcap.sql.ForeignKeyConstraint.isSelfReferencing().

byte [] com.quadcap.sql.ForeignKeyConstraint.makeFKey Session  session,
Row  row
throws IOException, SQLException
 

Create a candidate key for a row from the foreign table.

Definition at line 156 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.getFCols(), and com.quadcap.sql.ForeignKeyConstraint.makeFKey().

Referenced by com.quadcap.sql.ExportedKeyConstraint.checkDelete(), and com.quadcap.sql.ForeignKeyConstraint.makeFKey().

final byte [] com.quadcap.sql.ForeignKeyConstraint.makeKey Row  row,
int[]  k
throws SQLException [private]
 

Definition at line 162 of file ForeignKeyConstraint.java.

byte [] com.quadcap.sql.ForeignKeyConstraint.makeKey Session  session,
Row  row
throws SQLException
 

Create a candidate key for a row from this table.

Definition at line 147 of file ForeignKeyConstraint.java.

References com.quadcap.sql.Constraint.getColumns(), and com.quadcap.sql.ForeignKeyConstraint.makeKey().

Referenced by com.quadcap.sql.ImportedKeyConstraint.makeKey(), and com.quadcap.sql.ForeignKeyConstraint.makeKey().

void com.quadcap.sql.ForeignKeyConstraint.readExternal ObjectInput  in  )  throws IOException, ClassNotFoundException
 

Read me from a stream.

Reimplemented from com.quadcap.sql.Constraint.

Reimplemented in com.quadcap.sql.ExportedKeyConstraint, and com.quadcap.sql.ImportedKeyConstraint.

Definition at line 171 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.fColNames, com.quadcap.sql.ForeignKeyConstraint.fTableName, and com.quadcap.sql.ForeignKeyConstraint.readExternal().

Referenced by com.quadcap.sql.ForeignKeyConstraint.readExternal().

void com.quadcap.sql.ForeignKeyConstraint.resetColumns  )  throws SQLException
 

Reset any mapped columns (e.g.

in case a column is added or deleted)

Reimplemented from com.quadcap.sql.Constraint.

Definition at line 94 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.fCols.

Referenced by com.quadcap.sql.StmtRenameTable.renameForeignKeys().

void com.quadcap.sql.ForeignKeyConstraint.setForeignColumn String  name  ) 
 

Definition at line 166 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.fColNames, and com.quadcap.sql.ForeignKeyConstraint.setForeignColumn().

Referenced by com.quadcap.sql.SQLParser.columnConstraint(), and com.quadcap.sql.ForeignKeyConstraint.setForeignColumn().

void com.quadcap.sql.ForeignKeyConstraint.setFTableName String  s  ) 
 

Definition at line 189 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.fTableName, and com.quadcap.sql.ForeignKeyConstraint.setFTableName().

Referenced by com.quadcap.sql.StmtRenameTable.renameForeignKeys(), and com.quadcap.sql.ForeignKeyConstraint.setFTableName().

String com.quadcap.sql.ForeignKeyConstraint.toString  ) 
 

Return a displayable representation for debugging.

Reimplemented from com.quadcap.sql.Constraint.

Definition at line 245 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.fColNames, and com.quadcap.sql.ForeignKeyConstraint.fTableName.

Referenced by com.quadcap.sql.ImportedKeyConstraint.checkInsert().

void com.quadcap.sql.ForeignKeyConstraint.writeExternal ObjectOutput  out  )  throws IOException
 

Write me to a stream.

Reimplemented from com.quadcap.sql.Constraint.

Reimplemented in com.quadcap.sql.ExportedKeyConstraint, and com.quadcap.sql.ImportedKeyConstraint.

Definition at line 179 of file ForeignKeyConstraint.java.

References com.quadcap.sql.ForeignKeyConstraint.fColNames, com.quadcap.sql.ForeignKeyConstraint.fTableName, and com.quadcap.sql.ForeignKeyConstraint.writeExternal().

Referenced by com.quadcap.sql.ForeignKeyConstraint.writeExternal().


Member Data Documentation

transient Comparator com.quadcap.sql.ForeignKeyConstraint.compare [package]
 

Definition at line 72 of file ForeignKeyConstraint.java.

Referenced by com.quadcap.sql.ForeignKeyConstraint.getComparator().

Vector com.quadcap.sql.ForeignKeyConstraint.fColNames [package]
 

Definition at line 68 of file ForeignKeyConstraint.java.

Referenced by com.quadcap.sql.ForeignKeyConstraint.getFCols(), com.quadcap.sql.ForeignKeyConstraint.readExternal(), com.quadcap.sql.ForeignKeyConstraint.setForeignColumn(), com.quadcap.sql.ForeignKeyConstraint.toString(), and com.quadcap.sql.ForeignKeyConstraint.writeExternal().

int [] com.quadcap.sql.ForeignKeyConstraint.fCols [package]
 

Definition at line 71 of file ForeignKeyConstraint.java.

Referenced by com.quadcap.sql.ForeignKeyConstraint.getFCols(), and com.quadcap.sql.ForeignKeyConstraint.resetColumns().

UniqueConstraint com.quadcap.sql.ForeignKeyConstraint.fConstraint [package]
 

Definition at line 70 of file ForeignKeyConstraint.java.

Referenced by com.quadcap.sql.ForeignKeyConstraint.getFCols().

Table com.quadcap.sql.ForeignKeyConstraint.fTable [package]
 

Definition at line 69 of file ForeignKeyConstraint.java.

Referenced by com.quadcap.sql.ForeignKeyConstraint.getFCols(), and com.quadcap.sql.ForeignKeyConstraint.getFTable().

String com.quadcap.sql.ForeignKeyConstraint.fTableName [package]
 

Definition at line 67 of file ForeignKeyConstraint.java.

Referenced by com.quadcap.sql.ForeignKeyConstraint.getFTable(), com.quadcap.sql.ForeignKeyConstraint.getFTableName(), com.quadcap.sql.ForeignKeyConstraint.readExternal(), com.quadcap.sql.ForeignKeyConstraint.setFTableName(), com.quadcap.sql.ForeignKeyConstraint.toString(), and com.quadcap.sql.ForeignKeyConstraint.writeExternal().