Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 3.3.5 generated on August 31 2005
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## kodo.jdbc.meta
Class ManyToManyFieldMapping

    java.lang.Object
      |
      +--kodo.meta.DelegatingExtensions
            |
            +--kodo.meta.DelegatingFieldMetaData
                  |
                  +--kodo.jdbc.meta.AbstractFieldMapping
                        |
                        +--kodo.jdbc.meta.ReferenceFieldMapping
                              |
                              +--kodo.jdbc.meta.ContainerFieldMapping
                                    |
                                    +--kodo.jdbc.meta.AbstractCollectionFieldMapping
                                          |
                                          +--kodo.jdbc.meta.ManyToManyFieldMapping

All Implemented Interfaces:
  Commentable, Comparable, Extensions, FieldMapping, FieldMetaData, JDBCTypes, JDOTypes, Mapping

public class ManyToManyFieldMapping
extends AbstractCollectionFieldMapping

Maps a relation to a collection of other objects using an xref 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 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, VALUE_DEPENDENT, VALUE_TYPE`

Constructor Summary
`ManyToManyFieldMapping(FieldMetaData meta)` Constructor.

Method Summary
`void` | `addMappingInfoAttributes(Collection attrs)` Add all mapping attributes names used by this mapping to the given collection.
`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)` 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.
`Column[]` | `getColumns()` Return the data columns for this mapping.
`Object` | `getDataStoreValue(Object val)` Translate the given external field value to its datastore equivalent.
`ForeignKey` | `getForeignKey()` Return the foreign key to the related object.
`String` | `getMappingType()` Return the abbreviated name of this mapping, or the full class name if it is a custom mapping.
`void` | `insert(KodoStateManager sm, RowManager rm)` Set values for the mapping into the proper rows.
`static boolean` | `isJoinTable(Table table, ReverseMappingTool tool)` Return true if the given table matches the pattern for a join table.
`Joins` | `joinRelation(Joins joins)` Join this value's table to the table for the related first class object type, if any.
`Object` | `loadProjection(JDBCStoreManager store, JDBCFetchConfiguration fetch, Result res, Joins joins)` 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` | `refSchemaComponents()` Increment the reference count of all used schema components.
`void` | `reverseMap(SchemaGroup schema, ReverseMappingTool tool)` Create mappings from the schema, using the given tool.
`protected void` | `selectProjection(Select sel, JDBCStoreManager store, JDBCFetchConfiguration fetch, int eagerMode, Joins joins)` Implement this method to select the projection of this field.
`void` | `setForeignKey(ForeignKey fk)` Set the foreign key to the related object.
`boolean` | `supportsSelect(Select sel, int type, KodoStateManager sm, JDBCStoreManager store, JDBCFetchConfiguration fetch)` Return true if this mapping can perform the given select type.
`void` | `toMappingInfo(MappingInfo info)` Serialize this mapping to a simple `MappingInfo` instance for transfer to XML or some other format.
`void` | `update(KodoStateManager sm, RowManager rm)` Set values for the mapping into the proper rows.

Methods inherited from class kodo.jdbc.meta.AbstractCollectionFieldMapping
`addExtensionKeys, fromMappingInfo, getOrderColumn, getOrdered, isEagerJoinToMany, load, loadEagerJoin, loadEagerParallel, map, selectEagerJoin, selectEagerParallel, setOrderColumn, setOrdered, toArray, toCollection`

Methods inherited from class kodo.jdbc.meta.ContainerFieldMapping
`appendIsEmpty, appendIsNotNull, appendIsNull, getContainerMeta, getMetaDataColumn, join, load, select, setContainerMeta, setMetaDataColumn`

Methods inherited from class kodo.jdbc.meta.ReferenceFieldMapping
`createRefForeignKey, getJoinedRow, getRefForeignKey, getRefJoins, getRefJoinType, getTable, join, setRefForeignKey, setRefForeignKey, setRefJoinType, wherePrimaryKey, whereRefForeignKey`

Methods inherited from class kodo.jdbc.meta.AbstractFieldMapping
`assertTable, delete, deleteEmbedded, 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, isElementDeleteActionDeferred, isKeyDeleteActionDeferred, isPCObjectRelation, isRefDeleteActionDeferred, isResolved, joinKey, joinKeyRelation, loadKeyProjection, nullEmbedded, resolve, 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 class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

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`

Methods inherited from interface java.lang.Comparable
`compareTo`

Methods inherited from interface kodo.meta.Commentable
`getComments`

Field Detail

### TYPE

    public static final String TYPE

Constructor Detail

### ManyToManyFieldMapping

    public ManyToManyFieldMapping(FieldMetaData meta)

  Constructor. Supply underlying metadata.

Method Detail

### getForeignKey

    public ForeignKey getForeignKey()

  Return the foreign key to the related object.

### setForeignKey

    public void setForeignKey(ForeignKey fk)

  Set the foreign key to the related object.

### 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.

### toMappingInfo

    public void toMappingInfo(MappingInfo info)

  Description copied from interface: `Mapping`
  Serialize this mapping to a simple `MappingInfo` instance for transfer to XML or some other format.
  Overrides:
    `toMappingInfo` in class `AbstractCollectionFieldMapping`

### 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)`

### addMappingInfoAttributes

    public void addMappingInfoAttributes(Collection attrs)

  Description copied from interface: `Mapping`
  Add all mapping attributes names used by this mapping to the given collection. For foreign key attributes, add the prefix.
  Overrides:
    `addMappingInfoAttributes` in class `AbstractCollectionFieldMapping`

### 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 `AbstractFieldMapping`

### isJoinTable

    public static boolean isJoinTable(Table table,
                                      ReverseMappingTool tool)

  Return true if the given table matches the pattern for a join table.

### refSchemaComponents

    public void refSchemaComponents()

  Description copied from interface: `Mapping`
  Increment the reference count of all used schema components.
  Overrides:
    `refSchemaComponents` in class `AbstractCollectionFieldMapping`

### getColumns

    public Column[] getColumns()

  Description copied from interface: `FieldMapping`
  Return the data columns for this mapping. This corresponds to the field-order foreign key columns in relations.

### getDataStoreValue

    public Object getDataStoreValue(Object val)

  Description copied from interface: `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 `AbstractFieldMapping`

### joinRelation

    public Joins joinRelation(Joins joins)

  Description copied from interface: `FieldMapping`
  Join this value's table to the table for the related first class object type, if any. Does nothing by default.
  Overrides:
    `joinRelation` in class `AbstractFieldMapping`

### supportsSelect

    public boolean supportsSelect(Select sel,
                                  int type,
                                  KodoStateManager sm,
                                  JDBCStoreManager store,
                                  JDBCFetchConfiguration fetch)

  Description copied from interface: `FieldMapping`
  Return true if this mapping can perform the given select type. By default, returns true only if the type is `Select#JOINLESS` and the given select instance already has this field's table selected. The given state manager may be null if selecting multiple instances.
  Overrides:
    `supportsSelect` in class `AbstractCollectionFieldMapping`

### selectProjection

    protected void selectProjection(Select sel,
                                    JDBCStoreManager store,
                                    JDBCFetchConfiguration fetch,
                                    int eagerMode,
                                    Joins joins)

  Description copied from class: `AbstractCollectionFieldMapping`
  Implement this method to select the projection of this field. Elements of the result will be loaded with `FieldMapping.loadProjection(kodo.jdbc.runtime.JDBCStoreManager, kodo.jdbc.runtime.JDBCFetchConfiguration, kodo.jdbc.sql.Result, kodo.jdbc.sql.Joins)`.
  Overrides:
    `selectProjection` in class `AbstractCollectionFieldMapping`

### loadProjection

    public Object loadProjection(JDBCStoreManager store,
                                 JDBCFetchConfiguration fetch,
                                 Result res,
                                 Joins joins)
                          throws SQLException

  Description copied from interface: `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()`.

### 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 interface: `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 interface: `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 interface: `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 `AbstractFieldMapping`
  Following copied from interface: `kodo.jdbc.meta.FieldMapping`
  See Also:
    `Mapping.insert(kodo.runtime.KodoStateManager, kodo.jdbc.sql.RowManager)`

Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 3.3.5 generated on August 31 2005
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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