kodo.jdbc.meta
Class OneToManyFieldMapping
java.lang.Object
|
+--kodo.meta.DelegatingExtensions
|
+--kodo.meta.DelegatingFieldMetaData
|
+--kodo.jdbc.meta.FieldMapping
|
+--kodo.jdbc.meta.ReferenceFieldMapping
|
+--kodo.jdbc.meta.ContainerFieldMapping
|
+--kodo.jdbc.meta.AbstractCollectionFieldMapping
|
+--kodo.jdbc.meta.OneToManyFieldMapping
- All Implemented Interfaces:
- Comparable, Extensions, FieldMetaData, JDBCTypes, JDOTypes, Mapping
- public class OneToManyFieldMapping
- extends AbstractCollectionFieldMapping
Maps a relation to a collection of other objects using an inverse
foreign key in the related object table.
| Fields inherited from class kodo.jdbc.meta.FieldMapping |
AUTO_INCREMENT, DELETE_ACTION, ELEMENT_DELETE_ACTION, ELEMENT_INDEXED, ELEMENT_SIZE, FIELD_MAP, INDEXED, KEY_DELETE_ACTION, KEY_INDEXED, KEY_SIZE, REF_DELETE_ACTION, REF_INDEXED, SIZE, VALUE_DELETE_ACTION, VALUE_INDEXED, VALUE_SIZE |
| Fields inherited from interface kodo.jdbc.meta.JDBCTypes |
TYPE_ASCII_STREAM, TYPE_BINARY_STREAM, TYPE_BLOB, TYPE_BYTES, TYPE_CHAR_STREAM, TYPE_CLOB, TYPE_JDBC_DEFAULT, TYPE_REF, TYPE_SQL_ARRAY, TYPE_SQL_DATE, TYPE_SQL_OBJECT, TYPE_TIME, TYPE_TIMESTAMP |
| Fields inherited from interface kodo.meta.JDOTypes |
TYPE_ARRAY, TYPE_BIGDECIMAL, TYPE_BIGINTEGER, TYPE_BOOLEAN, TYPE_BOOLEAN_OBJ, TYPE_BYTE, TYPE_BYTE_OBJ, TYPE_CHAR, TYPE_CHAR_OBJ, TYPE_COLLECTION, TYPE_DATE, TYPE_DOUBLE, TYPE_DOUBLE_OBJ, TYPE_FCO, TYPE_FLOAT, TYPE_FLOAT_OBJ, TYPE_INT, TYPE_INT_OBJ, TYPE_LOCALE, TYPE_LONG, TYPE_LONG_OBJ, TYPE_MAP, TYPE_NUMBER, TYPE_OBJECT, TYPE_PC_OBJECT, TYPE_SHORT, TYPE_SHORT_OBJ, TYPE_STRING |
| Fields inherited from interface kodo.meta.FieldMetaData |
DEPENDENT, ELEMENT_DEPENDENT, ELEMENT_TYPE, EXTERNALIZER, FACTORY, FETCH_GROUP, INVERSE_OWNER, KEY_DEPENDENT, KEY_TYPE, LRS, MANAGE_NONE, MANAGE_PERSISTENT, MANAGE_TRANSACTIONAL, NULL_DEFAULT, NULL_EXCEPTION, NULL_NONE, VALUE_DEPENDENT, VALUE_TYPE |
|
Method Summary |
void |
delete(KodoStateManager sm,
RowManager rm)
Delete the row for this object if the reference foreign key exists. |
void |
deleteEmbedded(KodoStateManager sm,
RowManager rm)
Delete values for the mapping. |
void |
fromMappingInfo(MappingInfo info,
boolean adapt)
Deserialize this mapping from a simple MappingInfo
instance parsed from XML or some other format. |
Column[] |
getColumns()
Return the data columns for this mapping. |
Object |
getDataStoreValue(Object val)
Translate the given external field value to its datastore equivalent. |
String |
getMappingType()
Return the abbreviated name of this mapping, or the full class name if
it is a custom mapping. |
protected Result |
getResult(KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch)
Implement this method to return a result containing this field. |
void |
insert(KodoStateManager sm,
RowManager rm)
Set values for the mapping into the proper rows. |
void |
join(Joins joins)
Join this value to the class table. |
void |
load(KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch,
Result res)
Loads the metadata. |
Object |
loadProjection(JDBCStoreManager store,
JDBCFetchConfiguration fetch,
Result res)
Load this field value using the given result. |
boolean |
map()
Map a new instance of this mapping type. |
void |
nullEmbedded(KodoStateManager sm,
RowManager rm)
Null values for the mapping. |
void |
reverseMap(SchemaGroup schema,
ReverseMappingTool tool)
Create mappings from the schema, using the given tool. |
void |
selectEager(Select sel,
KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch)
Select eager to-many relations. |
void |
update(KodoStateManager sm,
RowManager rm)
Set values for the mapping into the proper rows. |
| Methods inherited from class kodo.jdbc.meta.AbstractCollectionFieldMapping |
fromMappingInfo, getOrderColumn, getOrdered, load, loadBatchedResult, map, refSchemaComponents, setOrderColumn, setOrdered, toArray, toCollection, toMappingInfo |
| Methods inherited from class kodo.jdbc.meta.ReferenceFieldMapping |
createRefForeignKey, getJoinedRow, getRefForeignKey, getRefJoinType, getSelectJoins, getTable, join, setRefForeignKey, setRefForeignKey, setRefJoinType, wherePrimaryKey, whereRefForeignKey |
| Methods inherited from class kodo.jdbc.meta.FieldMapping |
delete, deleteEmbedded, getDBDictionary, getDeclaredElementTypeMapping, getDeclaredElementTypeMetaData, getDeclaredKeyTypeMapping, getDeclaredKeyTypeMetaData, getDeclaredTypeMapping, getDeclaredTypeMetaData, getDefaults, getDeleteAction, getElementDeleteAction, getElementIndexed, getElementSize, getElementTypeMapping, getElementTypeMetaData, getFieldMappingName, getIndexed, getInverseOwnerMapping, getInverseOwnerMetaData, getKeyColumns, getKeyDataStoreValue, getKeyDeleteAction, getKeyIndexed, getKeySize, getKeyTypeMapping, getKeyTypeMetaData, getMappingRepository, getOwner, getOwnerMapping, getRefDeleteAction, getRefIndexed, getSize, getTypeMapping, getTypeMetaData, insert, invalidateResolve, isAutoIncrement, isCustomDelete, isCustomDeleteEmbedded, isCustomInsert, isCustomNullEmbedded, isCustomUpdate, isDeleteActionDeferred, isElementDeleteActionDeferred, isKeyDeleteActionDeferred, isRefDeleteActionDeferred, isResolved, joinKey, joinKeyRelation, joinRelation, loadKeyProjection, newInstance, nullEmbedded, resolve, setAutoIncrement, setDeleteAction, setElementDeleteAction, setElementIndexed, setElementSize, setFieldMappingName, setIndexed, setKeyDeleteAction, setKeyIndexed, setKeySize, setOwner, setRefDeleteAction, setRefIndexed, setSize, update |
| Methods inherited from class kodo.meta.DelegatingFieldMetaData |
compareTo, equals, getComparator, getDeclaredElementType, getDeclaredElementTypeCode, getDeclaredIndex, getDeclaredKeyType, getDeclaredKeyTypeCode, getDeclaredType, getDeclaredTypeCode, getDelegate, getElementType, getElementTypeCode, getElementTypeName, getExternalizer, getExternalizerMethod, getExternalValue, getFactory, getFactoryMethod, getFetchGroup, getFieldFlag, getFieldValue, getFullName, getIndex, getInnermostDelegate, getInverseOwner, getKeyType, getKeyTypeCode, getKeyTypeName, getManagement, getName, getNullValue, getPrimaryKeyIndex, getProxyType, getType, getTypeCode, getTypeName, hashCode, isDefaultFetchGroupExplicit, isDependent, isElementDependent, isElementEmbedded, isEmbedded, isExplicit, isInDefaultFetchGroup, isKeyDependent, isKeyEmbedded, isLRS, isPrimaryKey, isTransient, setComparator, setDeclaredElementType, setDeclaredElementTypeCode, setDeclaredIndex, setDeclaredKeyType, setDeclaredKeyTypeCode, setDeclaredType, setDeclaredTypeCode, setDependent, setElementDependent, setElementEmbedded, setElementTypeName, setEmbedded, setExplicit, setExternalizer, setFactory, setFetchGroup, setInDefaultFetchGroup, setIndex, setInverseOwner, setKeyDependent, setKeyEmbedded, setKeyTypeName, setLRS, setManagement, setName, setNullValue, setPrimaryKey, setPrimaryKeyIndex, setProxyType, setTransient, setTypeName, toString |
| Methods inherited from class kodo.meta.DelegatingExtensions |
addExtension, addExtension, getBooleanExtension, getBooleanExtension, getDoubleExtension, getDoubleExtension, getEmbeddedExtensions, getEmbeddedExtensions, getExtensionKeys, getExtensionKeys, getExtensionVendors, getIntExtension, getIntExtension, getObjectExtension, getObjectExtension, getStringExtension, getStringExtension, hasExtension, hasExtension, isEmpty, removeEmbeddedExtensions, removeEmbeddedExtensions, removeExtension, removeExtension |
| Methods inherited from interface kodo.meta.Extensions |
addExtension, addExtension, getBooleanExtension, getBooleanExtension, getDoubleExtension, getDoubleExtension, getEmbeddedExtensions, getEmbeddedExtensions, getExtensionKeys, getExtensionKeys, getExtensionVendors, getIntExtension, getIntExtension, getObjectExtension, getObjectExtension, getStringExtension, getStringExtension, hasExtension, hasExtension, isEmpty, removeEmbeddedExtensions, removeEmbeddedExtensions, removeExtension, removeExtension |
TYPE
public static final String TYPE
OneToManyFieldMapping
public OneToManyFieldMapping(FieldMetaData meta)
- Constructor. Supply underlying metadata.
getMappingType
public String getMappingType()
- Description copied from interface:
Mapping
- Return the abbreviated name of this mapping, or the full class name if
it is a custom mapping.
fromMappingInfo
public void fromMappingInfo(MappingInfo info,
boolean adapt)
- Description copied from interface:
Mapping
- Deserialize this mapping from a simple
MappingInfo
instance parsed from XML or some other format. If the info is
incompatible and adapt is true, try to adapt to the new
info. This method must validate
the given mapping information using the SchemaGroup.findTable(kodo.jdbc.schema.Table)
method to find any needed tables, the Table.getColumn(java.lang.String) method
to retrieve columns from those tables, and the
Column.isCompatible(int, int) method to check all column types.
This validation is important, as some schema groups use these methods
to build themselves up dynamically rather than reading schema
information from the database.
- Overrides:
fromMappingInfo in class ContainerFieldMapping
- Following copied from interface:
kodo.jdbc.meta.Mapping
- Throws:
MappingInfoNotFoundException - if the given info is invalid
map
public boolean map()
- Description copied from interface:
Mapping
- Map a new instance of this mapping type. If the underlying
metadata cannot be mapped using this type, return false.
- Overrides:
map in class ContainerFieldMapping
reverseMap
public void reverseMap(SchemaGroup schema,
ReverseMappingTool tool)
- Description copied from interface:
Mapping
- Create mappings from the schema, using the given tool.
Implement this method if you want the class mapping to be a candidate
when reverse-mapping a schema to java classes. Note that this
method will be invoked on a template instance, so you cannot rely
on the metadata or owning repository being set.
- Overrides:
reverseMap in class FieldMapping
getColumns
public Column[] getColumns()
- Description copied from class:
FieldMapping
- Return the data columns for this mapping. This corresponds to the
field-order foreign key columns in relations.
- Overrides:
getColumns in class FieldMapping
getDataStoreValue
public Object getDataStoreValue(Object val)
- Description copied from class:
FieldMapping
- Translate the given external field value to its datastore equivalent.
If the mapping occupies multiple columns in the datastore, return an
object array, else return a single object. Simply returns the given
object by default.
- Overrides:
getDataStoreValue in class FieldMapping
join
public void join(Joins joins)
- Description copied from class:
FieldMapping
- Join this value to the class table. Does nothing by default.
- Overrides:
join in class ContainerFieldMapping
selectEager
public void selectEager(Select sel,
KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch)
- Description copied from class:
FieldMapping
- Select eager to-many relations. This method is only called under
FetchConfiguration.EAGER_FETCH_MULTIPLE. Does nothing by
default.
- Overrides:
selectEager in class FieldMapping
- Following copied from class:
kodo.jdbc.meta.FieldMapping
- Parameters:
sel - the select to add tosm - the instance being loaded, or null if not
initialized yet or selecting for multiple instancesstore - the current store managerfetch - fetch configuration
loadProjection
public Object loadProjection(JDBCStoreManager store,
JDBCFetchConfiguration fetch,
Result res)
throws SQLException
- Description copied from class:
FieldMapping
- Load this field value using the given result. This method will only
be called if this field does not represent a FCO relation. The result
will contain the columns from
FieldMapping.getColumns().
- Overrides:
loadProjection in class FieldMapping
load
public void load(KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch,
Result res)
throws SQLException
- Description copied from class:
ContainerFieldMapping
- Loads the metadata.
- Overrides:
load in class ContainerFieldMapping
getResult
protected Result getResult(KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch)
throws SQLException
- Description copied from class:
AbstractCollectionFieldMapping
- Implement this method to return a result containing this field.
Elements of the result will be loaded with
FieldMapping.loadProjection(kodo.jdbc.runtime.JDBCStoreManager, kodo.jdbc.runtime.JDBCFetchConfiguration, kodo.jdbc.sql.Result). If this mapping is for large
result sets, pass the fetch configuration on to the store manager when
executing the select for the result. Otherwise, do not pass along
the fetch configuration so a non-lazy result is returned.
- Overrides:
getResult in class AbstractCollectionFieldMapping
insert
public void insert(KodoStateManager sm,
RowManager rm)
throws SQLException
- Description copied from interface:
Mapping
- Set values for the mapping into the proper rows. For class mappings,
this method will be called only after the corresponding method has
been called for all fields of this mapping.
- Overrides:
insert in class ContainerFieldMapping
update
public void update(KodoStateManager sm,
RowManager rm)
throws SQLException
- Description copied from interface:
Mapping
- Set values for the mapping into the proper rows.
- Overrides:
update in class ContainerFieldMapping
- Following copied from interface:
kodo.jdbc.meta.Mapping
- See Also:
Mapping.insert(kodo.runtime.KodoStateManager, kodo.jdbc.sql.RowManager)
delete
public void delete(KodoStateManager sm,
RowManager rm)
throws SQLException
- Description copied from class:
ReferenceFieldMapping
- Delete the row for this object if the reference foreign key exists.
- Overrides:
delete in class ContainerFieldMapping
- Following copied from interface:
kodo.jdbc.meta.Mapping
- See Also:
Mapping.insert(kodo.runtime.KodoStateManager, kodo.jdbc.sql.RowManager)
nullEmbedded
public void nullEmbedded(KodoStateManager sm,
RowManager rm)
throws SQLException
- Description copied from class:
FieldMapping
- Null values for the mapping. This method is used when embedded values
are nulled or replaced. The given state manager will be the owner
of the object whose fields are now being nulled.
- Overrides:
nullEmbedded in class ContainerFieldMapping
- Following copied from class:
kodo.jdbc.meta.FieldMapping
- See Also:
Mapping.insert(kodo.runtime.KodoStateManager, kodo.jdbc.sql.RowManager)
deleteEmbedded
public void deleteEmbedded(KodoStateManager sm,
RowManager rm)
throws SQLException
- Description copied from class:
FieldMapping
- Delete values for the mapping. This method is used when embedded
values are deleted. The given state manager will be the owner
of the object that is being deleted.
- Overrides:
deleteEmbedded in class FieldMapping
- Following copied from class:
kodo.jdbc.meta.FieldMapping
- See Also:
Mapping.insert(kodo.runtime.KodoStateManager, kodo.jdbc.sql.RowManager)
Copyright 2001,2002 SolarMetric, Inc. All Rights Reserved.