org.apache.derby.iapi.sql.dictionary
Class ReferencedKeyConstraintDescriptor
- java.lang.Object
-
- org.apache.derby.iapi.sql.dictionary.TupleDescriptor
-
- org.apache.derby.iapi.sql.dictionary.UniqueTupleDescriptor
-
- org.apache.derby.iapi.sql.dictionary.ConstraintDescriptor
-
- org.apache.derby.iapi.sql.dictionary.KeyConstraintDescriptor
-
- org.apache.derby.iapi.sql.dictionary.ReferencedKeyConstraintDescriptor
-
- All Implemented Interfaces:
- Dependable, Dependent, Provider
public class ReferencedKeyConstraintDescriptor extends KeyConstraintDescriptor
A ReferencedConstraintDeescriptor is a primary key or a unique key that is referenced by a foreign key.
-
-
Field Summary
-
Fields inherited from class org.apache.derby.iapi.sql.dictionary.ConstraintDescriptor
ALL, DISABLED, ENABLED, SYSCONSTRAINTS_STATE_FIELD
-
Fields inherited from interface org.apache.derby.catalog.Dependable
ACTIVATION, ALIAS, COLUMNS_IN_TABLE, COLUMNS_PERMISSION, CONGLOMERATE, CONSTRAINT, DEFAULT, FILE, HEAP, INDEX, PERM, PREPARED_STATEMENT, ROLE_GRANT, ROUTINE_PERMISSION, SCHEMA, SEQUENCE, STORED_PREPARED_STATEMENT, TABLE, TABLE_PERMISSION, TRIGGER, VIEW
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description intdecrementReferenceCount()Decrement the reference count by one.intgetConstraintType()Gets an identifier telling what type of descriptor it is (UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK).ConstraintDescriptorListgetForeignKeyConstraints(int type)Get the referencing foreign key constraintsConstraintDescriptorListgetNonSelfReferencingFK(int type)Am I referenced by a FK on another table? Return the list of those foreign constraints.intgetReferenceCount()Get the number of enforced fks that reference this key.booleanhasSelfReferencingFK(ConstraintDescriptorList cdl, int type)Am I referenced by a FK on the same table?intincrementReferenceCount()Bump the reference count by one.booleanisReferenced()Is this constraint referenced? Returns true if there are enforced fks that reference this constraint.booleanneedsToFire(int stmtType, int[] modifiedCols)Does this constraint need to fire on this type of DML? For referenced keys, fire if referenced by a fk, and stmt is delete or bulk insert replace, or stmt is update and columns intersect.-
Methods inherited from class org.apache.derby.iapi.sql.dictionary.KeyConstraintDescriptor
getConglomerateId, getIndexConglomerateDescriptor, getIndexId, getIndexUUIDString, hasBackingIndex, toString
-
Methods inherited from class org.apache.derby.iapi.sql.dictionary.ConstraintDescriptor
areColumnsComparable, columnIntersects, deferrable, drop, enforced, getClassType, getColumnDescriptors, getConstraintName, getConstraintText, getDependableFinder, getDescriptorName, getDescriptorType, getKeyColumns, getObjectID, getObjectName, getReferencedColumns, getSchemaDescriptor, getTableDescriptor, getTableId, getUUID, initiallyDeferred, isValid, makeInvalid, prepareToInvalidate, setDeferrable, setEnforced, setInitiallyDeferred
-
Methods inherited from class org.apache.derby.iapi.sql.dictionary.TupleDescriptor
isPersistent
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.derby.catalog.Dependable
isPersistent
-
-
-
-
Method Detail
-
getConstraintType
public final int getConstraintType()
Description copied from class:ConstraintDescriptorGets an identifier telling what type of descriptor it is (UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK).- Specified by:
getConstraintTypein classConstraintDescriptor- Returns:
- An identifier telling what type of descriptor it is (UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK).
-
hasSelfReferencingFK
public boolean hasSelfReferencingFK(ConstraintDescriptorList cdl, int type) throws StandardException
Am I referenced by a FK on the same table?- Parameters:
cdl- ConstraintDescriptorList for the tabletype- ConstraintDescriptor.(ENABLED|DISABLED|ALL)- Returns:
- true/false
- Throws:
StandardException- on error
-
getNonSelfReferencingFK
public ConstraintDescriptorList getNonSelfReferencingFK(int type) throws StandardException
Am I referenced by a FK on another table? Return the list of those foreign constraints.- Parameters:
type- ConstraintDescriptor.(ENABLED|DISABLED|ALL)- Returns:
- list of constraints
- Throws:
StandardException- on error
-
getForeignKeyConstraints
public ConstraintDescriptorList getForeignKeyConstraints(int type) throws StandardException
Get the referencing foreign key constraints- Parameters:
type- ConstraintDescriptor.(ENABLED|DISABLED|ALL)- Returns:
- the list of constraints (ConstraintDescriptorListImpl)
- Throws:
StandardException- on error
-
isReferenced
public boolean isReferenced()
Is this constraint referenced? Returns true if there are enforced fks that reference this constraint.- Overrides:
isReferencedin classConstraintDescriptor- Returns:
- false
-
getReferenceCount
public int getReferenceCount()
Get the number of enforced fks that reference this key.- Overrides:
getReferenceCountin classConstraintDescriptor- Returns:
- the number of fks
-
incrementReferenceCount
public int incrementReferenceCount()
Bump the reference count by one.- Returns:
- the number of fks
-
decrementReferenceCount
public int decrementReferenceCount()
Decrement the reference count by one.- Returns:
- the number of fks
-
needsToFire
public boolean needsToFire(int stmtType, int[] modifiedCols)Does this constraint need to fire on this type of DML? For referenced keys, fire if referenced by a fk, and stmt is delete or bulk insert replace, or stmt is update and columns intersect.- Specified by:
needsToFirein classConstraintDescriptor- Parameters:
stmtType- the type of DML (StatementType.INSERT|StatementType.UPDATE|StatementType.DELETE)modifiedCols- the columns modified, or null for all- Returns:
- true/false
-
-
DataMelt 3.0 © DataMelt by jWork.ORG