SolarMetric Kodo JDO 3.0.3 generated on February 20 2004

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.


Inner classes inherited from class kodo.jdbc.meta.AbstractCollectionFieldMapping
AbstractCollectionFieldMapping.LRSProxyCollection
 
Field Summary
static String TYPE
           
 
Fields inherited from class kodo.jdbc.meta.AbstractCollectionFieldMapping
ORDERED
 
Fields inherited from class kodo.jdbc.meta.ContainerFieldMapping
CONTAINER_META
 
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
 
Constructor Summary
OneToManyFieldMapping(FieldMetaData meta)
          Constructor.
 
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.ContainerFieldMapping
appendIsEmpty, appendIsNotNull, appendIsNull, containsSelectTables, getContainerMeta, getMetaDataColumn, select, setContainerMeta, setMetaDataColumn, supportsTwoPartSelect
 
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 class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
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
 

Field Detail

TYPE

public static final String TYPE
Constructor Detail

OneToManyFieldMapping

public OneToManyFieldMapping(FieldMetaData meta)
Constructor. Supply underlying metadata.
Method Detail

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 to
sm - the instance being loaded, or null if not initialized yet or selecting for multiple instances
store - the current store manager
fetch - 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)

SolarMetric Kodo JDO 3.0.3 generated on February 20 2004

Copyright 2001,2002 SolarMetric, Inc. All Rights Reserved.