org.javagen.agile.db.model
Class FkConstraint

java.lang.Object
  extended by org.javagen.agile.core.model.AbstractModel
      extended by org.javagen.agile.db.model.FkConstraint
All Implemented Interfaces:
Serializable, ContextHolder, Model

public class FkConstraint
extends AbstractModel

This models a foreign key constraint using one or more ColumnReferences to establish the relationship.

Author:
Richard Easterling
See Also:
Serialized Form

Field Summary
protected  Cardinality cardinality
           
protected  Boolean cascadeDelete
           
protected  Boolean cascadeInsert
           
protected  Boolean cascadeUpdate
           
static String DEFAULT_MODEL_TYPE
           
protected  FkEnum fkType
           
protected  FkConstraint reverseFkColumn
           
protected  Table targetTable
           
 
Fields inherited from class org.javagen.agile.core.model.AbstractModel
childModels, context, id, modelType, name, parentModel
 
Constructor Summary
FkConstraint()
           
FkConstraint(Table parentTable)
           
 
Method Summary
 ColumnReference addColumnReference(Column local, Column foreign)
           
 void addColumnReference(ColumnReference reference)
           
 boolean areLocalColumnsFromPrimaryKey()
          Colums that are both PKs and FKs are treated differently (durring updates and inserts for example).
 boolean checkInsertableUpdatable()
          Check if foreign key is already managed by a composite primary key, if so return false.
 int columnReferencesSize()
           
 void copyTo(Model targetModel)
          Copy non-null properties into target model instance.
 ColumnReference createColumnReference()
           
 Cardinality getCardinality()
           
 String getCardinalityString()
           
 Boolean getCascadeDelete()
           
 Boolean getCascadeInsert()
           
 Boolean getCascadeUpdate()
           
 List<ColumnReference> getColumnReferences()
           
 FkEnum getFkType()
           
 boolean getNotNull()
          Determine if this relationship can be null.
 Table getParentTable()
           
 FkConstraint getReverseFkConstraint()
           
 Table getTargetTable()
           
 boolean isPrimaryKeyJoinColumn()
          Determine if this is a primary key ONE_TO_ONE relationship.
 ColumnReference lookupColumnReference(String pkColName, String fkColName)
           
 void setCardinality(Cardinality cardinality)
           
 void setCascadeDelete(Boolean cascadeDelete)
           
 void setCascadeInsert(Boolean cascadeInsert)
           
 void setCascadeUpdate(Boolean cascadeUpdate)
           
 void setColumnReferences(List<ColumnReference> references)
           
 void setFkType(FkEnum fkType)
           
 void setParentTable(Table parentTable)
           
 void setReverseFkColumn(FkConstraint reverseFkColumn)
           
 void setTargetTable(Table foreignTable)
           
 boolean unique()
          Unique foreign keys restrict relationships to a ONE_TO_ONE cardinality.
 
Methods inherited from class org.javagen.agile.core.model.AbstractModel
addChildModel, allOwnedModels, equals, get, getChildModels, getContext, getId, getModelType, getName, getParentModel, lookupChildByName, put, setChildModels, setContext, setId, setModelType, setName, setParentModel, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_MODEL_TYPE

public static final String DEFAULT_MODEL_TYPE
See Also:
Constant Field Values

fkType

protected FkEnum fkType

targetTable

protected Table targetTable

cardinality

protected Cardinality cardinality

reverseFkColumn

protected FkConstraint reverseFkColumn

cascadeUpdate

protected Boolean cascadeUpdate

cascadeDelete

protected Boolean cascadeDelete

cascadeInsert

protected Boolean cascadeInsert
Constructor Detail

FkConstraint

public FkConstraint()

FkConstraint

public FkConstraint(Table parentTable)
Method Detail

checkInsertableUpdatable

public boolean checkInsertableUpdatable()
Check if foreign key is already managed by a composite primary key, if so return false.

Parameters:
fkConstraint - TODO verify logic is correct for composite FKs in checkInsertableUpdatable method
See Also:
In Action section: Foreign keys in composite primary keys

isPrimaryKeyJoinColumn

public boolean isPrimaryKeyJoinColumn()
Determine if this is a primary key ONE_TO_ONE relationship.


getNotNull

public boolean getNotNull()
Determine if this relationship can be null.


unique

public boolean unique()
Unique foreign keys restrict relationships to a ONE_TO_ONE cardinality.

Returns:
true if unique foreign key constraint

copyTo

public void copyTo(Model targetModel)
Description copied from interface: Model
Copy non-null properties into target model instance. Child values are generally not copied. Used in conjunction with XML serialization to allow individual model instances to be custimized.

Specified by:
copyTo in interface Model
Overrides:
copyTo in class AbstractModel
Parameters:
targetModel - model to set properties on

getParentTable

public Table getParentTable()

setParentTable

public void setParentTable(Table parentTable)

getTargetTable

public Table getTargetTable()

setTargetTable

public void setTargetTable(Table foreignTable)

createColumnReference

public ColumnReference createColumnReference()

addColumnReference

public ColumnReference addColumnReference(Column local,
                                          Column foreign)

addColumnReference

public void addColumnReference(ColumnReference reference)

setColumnReferences

public void setColumnReferences(List<ColumnReference> references)

getColumnReferences

public List<ColumnReference> getColumnReferences()

columnReferencesSize

public int columnReferencesSize()

lookupColumnReference

public ColumnReference lookupColumnReference(String pkColName,
                                             String fkColName)

getFkType

public FkEnum getFkType()

setFkType

public void setFkType(FkEnum fkType)

areLocalColumnsFromPrimaryKey

public boolean areLocalColumnsFromPrimaryKey()
Colums that are both PKs and FKs are treated differently (durring updates and inserts for example).


getCardinality

public Cardinality getCardinality()

setCardinality

public void setCardinality(Cardinality cardinality)

getCardinalityString

public String getCardinalityString()

getReverseFkConstraint

public FkConstraint getReverseFkConstraint()

setReverseFkColumn

public void setReverseFkColumn(FkConstraint reverseFkColumn)

getCascadeDelete

public Boolean getCascadeDelete()

setCascadeDelete

public void setCascadeDelete(Boolean cascadeDelete)

getCascadeUpdate

public Boolean getCascadeUpdate()

setCascadeUpdate

public void setCascadeUpdate(Boolean cascadeUpdate)

getCascadeInsert

public Boolean getCascadeInsert()

setCascadeInsert

public void setCascadeInsert(Boolean cascadeInsert)


Copyright 2006-2006-2007 Outsource Cafe Inc.. All Rights Reserved.