|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jpox.metadata.MetaData
org.jpox.metadata.ExtendableMetaData
org.jpox.metadata.ForeignKeyMetaData
Foreign keys in metadata serve two quite different purposes. First, when generating schema, the foreign key element identifies foreign keys to be generated. Second, when using the database, foreign key elements identify foreign keys that are assumed to exist in the database. This is important for the runtime to properly order insert, update, and delete statements to avoid constraint violations. A foreign-key element can be contained by a field, element, key, value, or join element, if all of the columns mapped are to be part of the same foreign key. A foreign-key element can be contained within a class element. In this case, the column elements are mapped elsewhere, and the column elements contained in the foreign-key element have only the column name. See jdo specification 2.0 §15.5
<!ELEMENT foreign-key (extension*, (column|field|property)*, extension*)> <!ATTLIST foreign-key table CDATA #IMPLIED> <!ATTLIST foreign-key deferred (true|false) #IMPLIED> <!ATTLIST foreign-key delete-action (cascade|restrict|null|default) #IMPLIED> <!ATTLIST foreign-key update-action (cascade|restrict|null|default) #IMPLIED> <!ATTLIST foreign-key unique (true|false) #IMPLIED> <!ATTLIST foreign-key name CDATA #IMPLIED>
Field Summary | |
protected ColumnMetaData[] |
columnMetaData
Contains the metadata for columns |
protected java.util.List |
columns
The columns for this foreign key. |
protected boolean |
deferred
The deferred attribute specifies whether the foreign key constraint is defined to be checked only at commit time. |
protected ForeignKeyDeleteAction |
deleteAction
Foreign keys represent a consistency constraint in the database that must be maintained. |
protected AbstractPropertyMetaData[] |
fieldMetaData
Contains the metadata for fields |
protected java.util.List |
fields
The fields for this foreign key. |
protected java.lang.String |
name
the foreign-key name |
protected java.lang.String |
table
the foreign-key table name. |
protected boolean |
unique
The unique attribute specifies whether the foreign key constraint is defined to be a unique constraint as well. |
protected ForeignKeyUpdateAction |
updateAction
Foreign keys represent a consistency constraint in the database that must be maintained. |
Fields inherited from class org.jpox.metadata.ExtendableMetaData |
extensions, JPOX_VENDOR_NAME |
Fields inherited from class org.jpox.metadata.MetaData |
LOCALISER, METADATA_CREATED_STATE, METADATA_INITIALISED_STATE, METADATA_POPULATED_STATE, METADATA_USED_STATE, metaDataState, parent |
Constructor Summary | |
ForeignKeyMetaData(MetaData parent,
ForeignKeyMetaData fkmd)
Constructor to create a copy of the passed metadata using the provided parent. |
|
ForeignKeyMetaData(java.lang.String deferred,
java.lang.String delete_action,
java.lang.String update_action,
java.lang.String table,
java.lang.String unique,
java.lang.String name)
Constructor. |
Method Summary | |
void |
addColumn(ColumnMetaData colmd)
Add a new ColumnMetaData element |
void |
addField(AbstractPropertyMetaData fmd)
Add a new AbstractPropertyMetaData element |
ColumnMetaData[] |
getColumnMetaData()
Accessor for columnMetaData |
ForeignKeyDeleteAction |
getDeleteAction()
Accessor for the delete action |
AbstractPropertyMetaData[] |
getFieldMetaData()
Accessor for fieldMetaData |
java.lang.String |
getName()
Accessor for the name of the foreign key |
java.lang.String |
getTable()
Accessor for the name of the table |
ForeignKeyUpdateAction |
getUpdateAction()
Accessor for the update action |
void |
initialise()
Method to initialise the object, setting up all internal arrays. |
boolean |
isDeferred()
Accessor for whether the FK is deferred |
boolean |
isUnique()
Accessor for the unique flag |
java.lang.String |
toString()
Accessor for a string representation of the object. |
java.lang.String |
toString(java.lang.String prefix,
java.lang.String indent)
Returns a string representation of the object using a prefix This can be used as part of a facility to output a MetaData file. |
Methods inherited from class org.jpox.metadata.ExtendableMetaData |
addExtension, addExtension, getExtension, getExtensions, getNoOfExtensions, getValueForExtension, getValuesForExtension, getValuesForExtensionStartingWith, hasExtension, removeExtension |
Methods inherited from class org.jpox.metadata.MetaData |
getParent, isCreated, isInitialised, isPopulated, isUsed, populate, setInitialised, setPopulated, setUsed |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected boolean deferred
protected ForeignKeyDeleteAction deleteAction
protected ForeignKeyUpdateAction updateAction
protected boolean unique
protected java.lang.String table
protected java.lang.String name
protected AbstractPropertyMetaData[] fieldMetaData
protected ColumnMetaData[] columnMetaData
protected java.util.List fields
protected java.util.List columns
Constructor Detail |
public ForeignKeyMetaData(MetaData parent, ForeignKeyMetaData fkmd)
parent
- The parentfkmd
- The metadata to copypublic ForeignKeyMetaData(java.lang.String deferred, java.lang.String delete_action, java.lang.String update_action, java.lang.String table, java.lang.String unique, java.lang.String name)
deferred
- Whether the key is deferreddelete_action
- Action to perform on deletionupdate_action
- Action to perform on updatetable
- Table to apply the FK tounique
- Whether the key is uniquename
- Name of the foreign keyMethod Detail |
public void initialise()
initialise
in class MetaData
public void addField(AbstractPropertyMetaData fmd)
fmd
- MetaData for the fieldpublic void addColumn(ColumnMetaData colmd)
addColumn
in interface ColumnMetaDataContainer
colmd
- MetaData for the columnpublic final AbstractPropertyMetaData[] getFieldMetaData()
public final ColumnMetaData[] getColumnMetaData()
getColumnMetaData
in interface ColumnMetaDataContainer
public final boolean isDeferred()
public final ForeignKeyDeleteAction getDeleteAction()
public final java.lang.String getName()
public final java.lang.String getTable()
public final boolean isUnique()
public final ForeignKeyUpdateAction getUpdateAction()
public java.lang.String toString()
toString
in class ExtendableMetaData
public java.lang.String toString(java.lang.String prefix, java.lang.String indent)
toString
in class ExtendableMetaData
prefix
- prefix stringindent
- indent string
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |