Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 2.5.0 Reverse Schema Tool
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.solarmetric.rd.kodo.impl.jdbc.meta.map
Class ManyToManyMapping

    java.lang.Object
      |
      +--com.solarmetric.rd.kodo.impl.jdbc.meta.Mapping
            |
            +--com.solarmetric.rd.kodo.impl.jdbc.meta.ExtensionsMapping
                  |
                  +--com.solarmetric.rd.kodo.impl.jdbc.meta.FieldMapping
                        |
                        +--com.solarmetric.rd.kodo.impl.jdbc.meta.map.ReferenceMapping
                              |
                              +--com.solarmetric.rd.kodo.impl.jdbc.meta.map.ContainerMapping
                                    |
                                    +--com.solarmetric.rd.kodo.impl.jdbc.meta.map.AbstractCollectionMapping
                                          |
                                          +--com.solarmetric.rd.kodo.impl.jdbc.meta.map.ManyToManyMapping

All Implemented Interfaces:
  java.lang.Comparable, Extensions, FieldMetaData

public class ManyToManyMapping
extends AbstractCollectionMapping

Maps a relation to a collection of other objects using an xref table.

Field Summary
`static java.lang.String` | `TYPE`

Fields inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.FieldMapping
`CONTAINER_META, DELETE_ACTION, ELEMENT_DELETE_ACTION, ELEMENT_INDEXED, ELEMENT_SIZE, EMPTY_COLUMNS, INDEXED, KEY_DELETE_ACTION, KEY_INDEXED, KEY_SIZE, ORDERED, REF_DELETE_ACTION, REF_INDEXED, SIZE, 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, USE_FIELD_MAP, USE_NULL_IND, VALUE_DELETE_ACTION, VALUE_INDEXED, VALUE_SIZE`

Fields inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.Mapping
`DEFAULT, FALSE, LOB, TRUE, UNIQUE`

Fields inherited from interface com.solarmetric.rd.kodo.meta.FieldMetaData
`DEPENDENT, ELEMENT_DEPENDENT, ELEMENT_PC_CLASS, INVERSE_OWNER, KEY_DEPENDENT, KEY_PC_CLASS, MANAGE_NONE, MANAGE_PERSISTENT, MANAGE_TRANSACTIONAL, NULL_DEFAULT, NULL_EXCEPTION, NULL_NONE, PC_CLASS, 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, VALUE_DEPENDENT, VALUE_PC_CLASS`

Constructor Summary
`ManyToManyMapping(com.solarmetric.rd.kodo.meta.FieldMetaData meta)` Constructor.

Method Summary
`void` | `delete(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)` Set the where values appropriately to delete the proper instance, and set all relations on non-secondary tables as updates.
`void` | `deleteEmbedded(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)` Delete values for the mapping.
`boolean` | `fromMappingInfo(com.solarmetric.rd.kodo.impl.jdbc.meta.MappingInfo info, boolean adapt)` Deserialize this mapping from a simple `MappingInfo` instance parsed from XML or some other format.
`com.solarmetric.rd.kodo.impl.jdbc.schema.Column[]` | `getColumns()` Return the data columns for this mapping.
`java.lang.Object` | `getDataStoreValue(java.lang.Object val)` Translate the given field value to its datastore equivalent.
`com.solarmetric.rd.kodo.impl.jdbc.schema.ForeignKey` | `getForeignKey()` Return the foreign key to the related object.
`java.lang.String` | `getMappingType()` Return the abbreviated name of this mapping, or the full class name if it is a custom mapping.
`void` | `insert(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)` Set values for the mapping into the proper rows.
`static boolean` | `isJoinTable(com.solarmetric.rd.kodo.impl.jdbc.schema.Table table, com.solarmetric.rd.kodo.impl.jdbc.meta.ReverseMappingTool tool)` Return true if the given table matches the pattern for a join table.
`void` | `joinRelation(com.solarmetric.rd.kodo.impl.jdbc.runtime.Joins joins)` Join this value's table to the table for the related first class object type, if any.
`void` | `load(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.impl.jdbc.runtime.JDBCStoreManager store, java.sql.Connection conn)` Load secondary data.
`void` | `load(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.impl.jdbc.runtime.JDBCStoreManager store, com.solarmetric.rd.kodo.impl.jdbc.runtime.Result res)` Load virtual row data; the given result is not guaranteed to contain data for this field, so the field mapping should make sure the result contains its needed column data before loading.
`boolean` | `map()` Map a new instance of this mapping type.
`void` | `nullEmbedded(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)` Null values for the mapping.
`void` | `refSchemaComponents()` Increment the reference count of all used schema components.
`void` | `reverseMap(com.solarmetric.rd.kodo.impl.jdbc.schema.SchemaGroup schema, com.solarmetric.rd.kodo.impl.jdbc.meta.ReverseMappingTool tool)` Create mappings from the schema, using the given tool.
`void` | `select(com.solarmetric.rd.kodo.impl.jdbc.runtime.Select sel, boolean multiple)` Select the virtual row columns of this mapping.
`java.lang.Boolean` | `selectVRowData(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm)` Return `Boolean.TRUE` if 'virtual row' data needs to be selected, `Boolean.FALSE` if it does not need to be, and `null` if it would be desirable to select it, but is not necessary.
`void` | `setForeignKey(com.solarmetric.rd.kodo.impl.jdbc.schema.ForeignKey fk)` Set the foreign key to the related object.
`void` | `toMappingInfo(com.solarmetric.rd.kodo.impl.jdbc.meta.MappingInfo info)` Serialize this mapping to a simple `MappingInfo` instance for transfer to XML or some other format.
`void` | `update(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)` Set values for the mapping into the proper rows.

Methods inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.map.AbstractCollectionMapping
`getKeyColumns, getOrderColumn, joinKey, joinKeyRelation, map, setOrderColumn, toArray, toCollection`

Methods inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.map.ContainerMapping
`appendIsEmpty, appendIsNotNull, appendIsNull, getMetaDataColumn, getVRowTable, join, newCollection, newMap, setMetaDataColumn`

Methods inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.map.ReferenceMapping
`createRefForeignKey, fromMappingInfo, getRefForeignKey, getSelectJoins, getTable, join, setRefForeignKey, wherePrimaryKey`

Methods inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.FieldMapping
`addExtension, addExtension, checkRepository, compareTo, deleteEmbedded, getBooleanExtension, getBooleanExtension, getContainerMeta, getDeclaredElementType, getDeclaredIndex, getDeclaredKeyType, getDeclaredType, getDefaults, getDeleteAction, getDoubleExtension, getDoubleExtension, getElementDeleteAction, getElementIndexed, getElementPCClass, getElementSize, getElementType, getElementTypeCode, getElementTypeMapping, getElementTypeMetaData, getEmbeddedExtensions, getEmbeddedExtensions, getExtensionKeys, getExtensionKeys, getExtensionVendors, getFieldFlag, getFullName, getIndex, getIndexed, getIntExtension, getIntExtension, getInverseOwner, getInverseOwnerMapping, getInverseOwnerMetaData, getKeyDataStoreValue, getKeyDeleteAction, getKeyIndexed, getKeyPCClass, getKeySize, getKeyType, getKeyTypeCode, getKeyTypeMapping, getKeyTypeMetaData, getManagement, getMappingRepository, getMetaData, getName, getNullValue, getObjectExtension, getObjectExtension, getOrdered, getOwner, getOwnerMapping, getPCClass, getRefDeleteAction, getRefIndexed, getSize, getStringExtension, getStringExtension, getType, getTypeCode, getTypeMapping, getTypeMetaData, getUseFieldMapping, getUseNullIndicator, hasExtension, hasExtension, invalidateResolve, isCustomDeleteEmbedded, isCustomNullEmbedded, isDeleteActionDeferred, isDependent, isEager, isElementDeleteActionDeferred, isElementDependent, isElementEager, isEmbedded, isEmbeddedElement, isEmbeddedKey, isEmpty, isExplicit, isInDefaultFetchGroup, isKeyDeleteActionDeferred, isKeyDependent, isKeyEager, isPrimaryKey, isRefDeleteActionDeferred, isValue, newInstance, newInstance, nullEmbedded, removeEmbeddedExtensions, removeEmbeddedExtensions, removeExtension, removeExtension, resolve, setContainerMeta, setDeclaredIndex, setDeleteAction, setDependent, setElementDeleteAction, setElementDependent, setElementIndexed, setElementPCClass, setElementSize, setElementType, setEmbedded, setEmbeddedElement, setEmbeddedKey, setExplicit, setInDefaultFetchGroup, setIndex, setIndexed, setInverseOwner, setKeyDeleteAction, setKeyDependent, setKeyIndexed, setKeyPCClass, setKeySize, setKeyType, setManagement, setName, setNullValue, setOrdered, setOwner, setPCClass, setPrimaryKey, setRefDeleteAction, setRefIndexed, setSize, setType, setUseFieldMapping, setUseNullIndicator, toString`

Methods inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.Mapping
`checkIndex, createColumn, delete, getDBDictionary, getForeignKey, getLog, getSchemaGroup, insert, invalidMapping, isCustomDelete, isCustomInsert, isCustomUpdate, setForeignKey, update`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface com.solarmetric.rd.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 java.lang.String TYPE

See Also:
  Constant Field Values

Constructor Detail

### ManyToManyMapping

    public ManyToManyMapping(com.solarmetric.rd.kodo.meta.FieldMetaData meta)

  Constructor. Supply underlying metadata.

Method Detail

### getForeignKey

    public com.solarmetric.rd.kodo.impl.jdbc.schema.ForeignKey getForeignKey()

  Return the foreign key to the related object.

### setForeignKey

    public void setForeignKey(com.solarmetric.rd.kodo.impl.jdbc.schema.ForeignKey fk)

  Set the foreign key to the related object.

### getMappingType

    public java.lang.String getMappingType()

  Description copied from class: `Mapping`
  Return the abbreviated name of this mapping, or the full class name if it is a custom mapping. Returns the full class name by default.

  Overrides:
    `getMappingType` in class `Mapping`

### toMappingInfo

    public void toMappingInfo(com.solarmetric.rd.kodo.impl.jdbc.meta.MappingInfo info)

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

  Overrides:
    `toMappingInfo` in class `AbstractCollectionMapping`

### fromMappingInfo

    public boolean fromMappingInfo(com.solarmetric.rd.kodo.impl.jdbc.meta.MappingInfo info,
                                   boolean adapt)

  Description copied from class: `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, else return false. This method must validate the given mapping information using the `SchemaGroup.findTable(java.lang.String)` 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 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 `AbstractCollectionMapping`

### map

    public boolean map()

  Description copied from class: `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 `ContainerMapping`

### reverseMap

    public void reverseMap(com.solarmetric.rd.kodo.impl.jdbc.schema.SchemaGroup schema,
                           com.solarmetric.rd.kodo.impl.jdbc.meta.ReverseMappingTool tool)

  Description copied from class: `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 `Mapping`

### isJoinTable

    public static boolean isJoinTable(com.solarmetric.rd.kodo.impl.jdbc.schema.Table table,
                                      com.solarmetric.rd.kodo.impl.jdbc.meta.ReverseMappingTool tool)

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

### refSchemaComponents

    public void refSchemaComponents()

  Description copied from class: `Mapping`
  Increment the reference count of all used schema components.

  Overrides:
    `refSchemaComponents` in class `AbstractCollectionMapping`

### getColumns

    public com.solarmetric.rd.kodo.impl.jdbc.schema.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.

  Specified by:
    `getColumns` in class `FieldMapping`

### getDataStoreValue

    public java.lang.Object getDataStoreValue(java.lang.Object val)

  Description copied from class: `FieldMapping`
  Translate the given 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`

### joinRelation

    public void joinRelation(com.solarmetric.rd.kodo.impl.jdbc.runtime.Joins joins)

  Description copied from class: `FieldMapping`
  Join this value's table to the table for the related first class object type, if any.

  Specified by:
    `joinRelation` in class `FieldMapping`

### selectVRowData

    public java.lang.Boolean selectVRowData(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm)

  Description copied from class: `FieldMapping`
  Return `Boolean.TRUE` if 'virtual row' data needs to be selected, `Boolean.FALSE` if it does not need to be, and `null` if it would be desirable to select it, but is not necessary.

  Overrides:
    `selectVRowData` in class `ContainerMapping`

### select

    public void select(com.solarmetric.rd.kodo.impl.jdbc.runtime.Select sel,
                       boolean multiple)

  Description copied from class: `FieldMapping`
  Select the virtual row columns of this mapping.

  Overrides:
    `select` in class `ContainerMapping`
  Parameters:
    `sel` - the select to add to
    `multiple` - whether this select is expected to match multiple objects

### load

    public void load(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                     com.solarmetric.rd.kodo.impl.jdbc.runtime.JDBCStoreManager store,
                     com.solarmetric.rd.kodo.impl.jdbc.runtime.Result res)
              throws java.sql.SQLException

  Description copied from class: `FieldMapping`
  Load virtual row data; the given result is not guaranteed to contain data for this field, so the field mapping should make sure the result contains its needed column data before loading.

  Overrides:
    `load` in class `ContainerMapping`
    `java.sql.SQLException`

### load

    public void load(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                     com.solarmetric.rd.kodo.impl.jdbc.runtime.JDBCStoreManager store,
                     java.sql.Connection conn)
              throws java.sql.SQLException

  Description copied from class: `FieldMapping`
  Load secondary data.

  Specified by:
    `load` in class `FieldMapping`
    `java.sql.SQLException`

### insert

    public void insert(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                       com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)
                throws java.sql.SQLException

  Description copied from class: `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 `ContainerMapping`
    `java.sql.SQLException`

### update

    public void update(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                       com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)
                throws java.sql.SQLException

  Description copied from class: `Mapping`
  Set values for the mapping into the proper rows.

  Overrides:
    `update` in class `ContainerMapping`
    `java.sql.SQLException`
  See Also:
    `Mapping.insert(com.solarmetric.rd.kodo.runtime.StateManagerImpl, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager)`

### delete

    public void delete(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                       com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)
                throws java.sql.SQLException

  Description copied from class: `Mapping`
  Set the where values appropriately to delete the proper instance, and set all relations on non-secondary tables as updates. This allows foreign key analysis.

  Specified by:
    `delete` in class `Mapping`
    `java.sql.SQLException`
  See Also:
    `Mapping.insert(com.solarmetric.rd.kodo.runtime.StateManagerImpl, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager)`

### nullEmbedded

    public void nullEmbedded(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                             com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)
                      throws java.sql.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 `ContainerMapping`
    `java.sql.SQLException`
  See Also:
    `Mapping.insert(com.solarmetric.rd.kodo.runtime.StateManagerImpl, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager)`

### deleteEmbedded

    public void deleteEmbedded(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                               com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)
                        throws java.sql.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`
    `java.sql.SQLException`
  See Also:
    `Mapping.insert(com.solarmetric.rd.kodo.runtime.StateManagerImpl, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager)`

Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 2.5.0 Reverse Schema Tool
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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