kodo.jdbc.meta
Class AbstractMapFieldMapping
java.lang.Object
|
+--kodo.meta.DelegatingExtensions
|
+--kodo.meta.DelegatingFieldMetaData
|
+--kodo.jdbc.meta.AbstractFieldMapping
|
+--kodo.jdbc.meta.ReferenceFieldMapping
|
+--kodo.jdbc.meta.ContainerFieldMapping
|
+--kodo.jdbc.meta.AbstractMapFieldMapping
- All Implemented Interfaces:
- Commentable, Comparable, Extensions, FieldMapping, FieldMetaData, JDBCTypes, JDOTypes, Mapping
- Direct Known Subclasses:
- ColumnMapFieldMapping, ColumnToManyMapFieldMapping, ManyToColumnMapFieldMapping, ManyToManyMapFieldMapping
- public abstract class AbstractMapFieldMapping
- extends ContainerFieldMapping
Base class for map mappings. Handles managing the secondary table
used to hold map keys and values and loading. Subclasses must implement
FieldMapping.loadKeyProjection(kodo.jdbc.runtime.JDBCStoreManager, kodo.jdbc.runtime.JDBCFetchConfiguration, kodo.jdbc.sql.Result, kodo.jdbc.sql.Joins)
and
FieldMapping.loadProjection(kodo.jdbc.runtime.JDBCStoreManager, kodo.jdbc.runtime.JDBCFetchConfiguration, kodo.jdbc.sql.Result, kodo.jdbc.sql.Joins)
even if their key/value types are
FCOs.
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.jdbc.meta.FieldMapping |
AUTO_INCREMENT, DELETE_ACTION, ELEMENT_DELETE_ACTION, ELEMENT_INDEXED, ELEMENT_SIZE, EXTENSION_KEYS, FIELD_MAP, INDEXED, JDBC_TYPE, KEY_DELETE_ACTION, KEY_INDEXED, KEY_SIZE, REF_DELETE_ACTION, REF_INDEXED, SIZE, SQL_TYPE, VALUE_DELETE_ACTION, VALUE_INDEXED, VALUE_SIZE |
Fields inherited from interface kodo.meta.FieldMetaData |
DEPENDENT, EAGER_FETCH_MODE, ELEMENT_DEPENDENT, ELEMENT_TYPE, EXTERNAL_VALUES, EXTERNALIZER, FACTORY, FETCH_GROUP, INVERSE_LOGICAL, INVERSE_OWNER, KEY_DEPENDENT, KEY_TYPE, LOCK_GROUP, LOCK_GROUP_DEFAULT, LOCK_GROUP_NONE, LRS, MANAGE_NONE, MANAGE_PERSISTENT, MANAGE_TRANSACTIONAL, NULL_DEFAULT, NULL_EXCEPTION, NULL_NONE, NULL_UNSET, SEQUENCE_ASSIGNED, TYPE, VALUE_DEPENDENT, VALUE_TYPE |
Method Summary |
void |
fromMappingInfo(MappingInfo info,
boolean adapt)
The default implementation will raise warnings for any mapping
attributes that are declared but not in the list of the valid
attributes for this mapping. |
protected abstract Result[] |
getResults(KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch,
int eagerMode,
boolean lrs)
Return results containing all keys and values for this map. |
Joins |
joinKey(Joins joins)
Join the key value to the class table. |
void |
load(KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch)
Load secondary data using a connection from the store manager. |
boolean |
map()
Map a new instance of this mapping type. |
protected abstract void |
selectKeys(Select sel,
KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch,
Joins joins)
Implement this method to select the keys of this mapping. |
protected abstract void |
selectValues(Select sel,
KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch,
Joins joins)
Implement this method to select the values of this mapping. |
Methods inherited from class kodo.jdbc.meta.ContainerFieldMapping |
addExtensionKeys, addMappingInfoAttributes, appendIsEmpty, appendIsNotNull, appendIsNull, delete, getContainerMeta, getMetaDataColumn, insert, join, load, nullEmbedded, refSchemaComponents, select, setContainerMeta, setMetaDataColumn, supportsSelect, toMappingInfo, update |
Methods inherited from class kodo.jdbc.meta.ReferenceFieldMapping |
createRefForeignKey, fromMappingInfo, getJoinedRow, getRefForeignKey, getRefJoins, getRefJoinType, getTable, join, setRefForeignKey, setRefForeignKey, setRefJoinType, wherePrimaryKey, whereRefForeignKey |
Methods inherited from class kodo.jdbc.meta.AbstractFieldMapping |
assertTable, delete, deleteEmbedded, deleteEmbedded, getDataStoreValue, getDBDictionary, getDeclaredElementTypeMapping, getDeclaredElementTypeMetaData, getDeclaredKeyTypeMapping, getDeclaredKeyTypeMetaData, getDeclaredTypeMapping, getDeclaredTypeMetaData, getDeleteAction, getElementDeleteAction, getElementIndexed, getElementSize, getElementTypeMapping, getElementTypeMetaData, getFieldMappingName, getIndexed, getInverseMappings, getInverseMetaDatas, getInverseOwnerMapping, getInverseOwnerMetaData, getJDBCTypeCode, getKeyColumns, getKeyDataStoreValue, getKeyDeleteAction, getKeyIndexed, getKeySize, getKeyTypeMapping, getKeyTypeMetaData, getMappingRepository, getMetaData, getNonVirtualOwner, getOwner, getOwnerMapping, getOwnerTable, getRefDeleteAction, getRefIndexed, getSize, getSQLType, getTypeMapping, getTypeMetaData, insert, invalidateResolve, isAutoIncrement, isCustomDelete, isCustomDeleteEmbedded, isCustomInsert, isCustomNullEmbedded, isCustomUpdate, isDeleteActionDeferred, isEagerJoinToMany, isElementDeleteActionDeferred, isKeyDeleteActionDeferred, isPCObjectRelation, isRefDeleteActionDeferred, isResolved, joinKeyRelation, joinRelation, loadEagerJoin, loadEagerParallel, loadKeyProjection, nullEmbedded, resolve, reverseMap, selectEagerJoin, selectEagerParallel, setAutoIncrement, setDeleteAction, setElementDeleteAction, setElementIndexed, setElementSize, setFieldMappingName, setIndexed, setJDBCTypeCode, setKeyDeleteAction, setKeyIndexed, setKeySize, setNonVirtualOwner, setOwner, setRefDeleteAction, setRefIndexed, setSize, setSQLType, update, usesImplData, usesIntermediate |
Methods inherited from class kodo.meta.DelegatingFieldMetaData |
compareTo, equals, getComments, getComparator, getDeclaredElementType, getDeclaredElementTypeCode, getDeclaredIndex, getDeclaredKeyType, getDeclaredKeyTypeCode, getDeclaredPrimaryKeyIndex, getDeclaredType, getDeclaredTypeCode, getDelegate, getEagerFetchMode, getElementType, getElementTypeCode, getElementTypeName, getExternalizer, getExternalValue, getExternalValues, getFactory, getFetchGroup, getFieldFlag, getFieldValue, getFullName, getIndex, getInnermostDelegate, getInverseLogical, getInverseOwner, getKeyType, getKeyTypeCode, getKeyTypeName, getListingIndex, getLockGroup, getManagement, getName, getNullValue, getPrimaryKeyIndex, getProxyType, getType, getTypeCode, getTypeName, hashCode, isDefaultFetchGroupExplicit, isDependent, isElementDependent, isElementEmbedded, isEmbedded, isExplicit, isExternalized, isInDefaultFetchGroup, isKeyDependent, isKeyEmbedded, isLRS, isPrimaryKey, isSequenceAssigned, isTransient, setComparator, setDeclaredElementType, setDeclaredElementTypeCode, setDeclaredIndex, setDeclaredKeyType, setDeclaredKeyTypeCode, setDeclaredPrimaryKeyIndex, setDeclaredType, setDeclaredTypeCode, setDependent, setEagerFetchMode, setElementDependent, setElementEmbedded, setElementTypeName, setEmbedded, setExplicit, setExternalizer, setExternalValues, setFactory, setFetchGroup, setInDefaultFetchGroup, setIndex, setInverseLogical, setInverseOwner, setKeyDependent, setKeyEmbedded, setKeyTypeName, setListingIndex, setLockGroup, setLRS, setManagement, setName, setNullValue, setPrimaryKey, setProxyType, setSequenceAssigned, setTransient, setTypeName, toString |
Methods inherited from class kodo.meta.DelegatingExtensions |
addExtension, addExtension, getBooleanExtension, getBooleanExtension, getDoubleExtension, getDoubleExtension, getEmbeddedExtensions, getEmbeddedExtensions, getExtensionComments, getExtensionKeys, getExtensionKeys, getExtensionVendors, getIntExtension, getIntExtension, getObjectExtension, getObjectExtension, getStringExtension, getStringExtension, hasExtension, hasExtension, isEmpty, removeEmbeddedExtensions, removeEmbeddedExtensions, removeExtension, removeExtension |
Methods inherited from interface kodo.meta.FieldMetaData |
getComparator, getDeclaredElementType, getDeclaredElementTypeCode, getDeclaredIndex, getDeclaredKeyType, getDeclaredKeyTypeCode, getDeclaredPrimaryKeyIndex, getDeclaredType, getDeclaredTypeCode, getEagerFetchMode, getElementType, getElementTypeCode, getElementTypeName, getExternalizer, getExternalValue, getExternalValues, getFactory, getFetchGroup, getFieldFlag, getFieldValue, getFullName, getIndex, getInverseLogical, getInverseOwner, getKeyType, getKeyTypeCode, getKeyTypeName, getListingIndex, getLockGroup, getManagement, getName, getNullValue, getPrimaryKeyIndex, getProxyType, getType, getTypeCode, getTypeName, isDefaultFetchGroupExplicit, isDependent, isElementDependent, isElementEmbedded, isEmbedded, isExplicit, isExternalized, isInDefaultFetchGroup, isKeyDependent, isKeyEmbedded, isLRS, isPrimaryKey, isSequenceAssigned, isTransient, setComparator, setDeclaredElementType, setDeclaredElementTypeCode, setDeclaredIndex, setDeclaredKeyType, setDeclaredKeyTypeCode, setDeclaredPrimaryKeyIndex, setDeclaredType, setDeclaredTypeCode, setDependent, setEagerFetchMode, setElementDependent, setElementEmbedded, setElementTypeName, setEmbedded, setExplicit, setExternalizer, setExternalValues, setFactory, setFetchGroup, setInDefaultFetchGroup, setIndex, setInverseLogical, setInverseOwner, setKeyDependent, setKeyEmbedded, setKeyTypeName, setListingIndex, setLockGroup, setLRS, setManagement, setName, setNullValue, setPrimaryKey, setProxyType, setSequenceAssigned, setTransient, setTypeName |
Methods inherited from interface kodo.meta.Extensions |
addExtension, addExtension, getBooleanExtension, getBooleanExtension, getDoubleExtension, getDoubleExtension, getEmbeddedExtensions, getEmbeddedExtensions, getExtensionComments, getExtensionKeys, getExtensionKeys, getExtensionVendors, getIntExtension, getIntExtension, getObjectExtension, getObjectExtension, getStringExtension, getStringExtension, hasExtension, hasExtension, isEmpty, removeEmbeddedExtensions, removeEmbeddedExtensions, removeExtension, removeExtension |
AbstractMapFieldMapping
public AbstractMapFieldMapping(FieldMetaData meta)
- Constructor. Supply underlying metadata.
fromMappingInfo
public void fromMappingInfo(MappingInfo info,
boolean adapt)
- Description copied from class:
AbstractFieldMapping
- The default implementation will raise warnings for any mapping
attributes that are declared but not in the list of the valid
attributes for this mapping.
- Overrides:
fromMappingInfo
in class ContainerFieldMapping
- Following copied from class:
kodo.jdbc.meta.AbstractFieldMapping
- See Also:
AbstractFieldMapping.addMappingInfoAttributes(java.util.Collection)
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
joinKey
public Joins joinKey(Joins joins)
- Description copied from interface:
FieldMapping
- Join the key value to the class table. Does nothing by default.
- Overrides:
joinKey
in class AbstractFieldMapping
load
public void load(KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch)
throws SQLException
- Description copied from interface:
FieldMapping
- Load secondary data using a connection from the store manager.
selectKeys
protected abstract void selectKeys(Select sel,
KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch,
Joins joins)
- Implement this method to select the keys of this mapping. If the
keys are FCOs, do not select them with any eager fetching enabled.
Used in LRS support.
selectValues
protected abstract void selectValues(Select sel,
KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch,
Joins joins)
- Implement this method to select the values of this mapping. If the
values are FCOs, do not select them with any eager fetching enabled.
Used in LRS support.
getResults
protected abstract Result[] getResults(KodoStateManager sm,
JDBCStoreManager store,
JDBCFetchConfiguration fetch,
int eagerMode,
boolean lrs)
throws SQLException
- Return results containing all keys and values for this map. If two
results are needed, return the result containing the keys in the
array's 0th index, followed by the result containing the values
in the 1st index. The results will be loaded with the
FieldMapping.loadKeyProjection(kodo.jdbc.runtime.JDBCStoreManager, kodo.jdbc.runtime.JDBCFetchConfiguration, kodo.jdbc.sql.Result, kodo.jdbc.sql.Joins)
and
FieldMapping.loadProjection(kodo.jdbc.runtime.JDBCStoreManager, kodo.jdbc.runtime.JDBCFetchConfiguration, kodo.jdbc.sql.Result, kodo.jdbc.sql.Joins)
methods.
Copyright 2001,2002 SolarMetric, Inc. All Rights Reserved.