Package org.eclipse.emf.cdo.server.db.mapping

# Interface IListMapping

All Superinterfaces:
  `IFeatureMapping`

All Known Subinterfaces:
  `IListMapping2`, `IListMapping3`, `IListMappingUnitSupport`

public interface IListMapping extends IFeatureMapping
Interface for mapping features with `isMany() == true`.

Since:
  2.0
Author:
  Eike Stepper, Stefan Winkler

## Method Summary

Modifier and Type
Method
Description
`Collection<org.eclipse.net4j.db.ddl.IDBTable>`
`getDBTables()`
Returns all DB tables which are used by this feature.
`default org.eclipse.net4j.db.DBType`
`getDBType()`
`EStructuralFeature`
`getFeature()`
Return the mapped feature.
`default org.eclipse.net4j.db.ddl.IDBField`
`getField()`
`default ITypeMapping`
`getTypeMapping()`
`void`
`objectDetached(IDBStoreAccessor accessor, CDOID id, long revised)`
Hook with which a list mapping is notified that a containing object has been revised.
`boolean`
`queryXRefs(IDBStoreAccessor accessor, String mainTableName, String mainTableWhere, IStoreAccessor.QueryXRefsContext context, String idString)`
Retrieve cross-references from DB.
`void`
`readChunks(IDBStoreChunkReader dbStoreChunkReader, List<IStoreChunkReader.Chunk> chunks, String where)`
Used to load-on-demand chunks of a list.
`void`
`readValues(IDBStoreAccessor accessor, InternalCDORevision revision, int listChunk)`
Read the list size and the complete list or the first part of it.
`void`
`writeValues(IDBStoreAccessor accessor, InternalCDORevision revision)`
Write a complete list of values to the database.

## Method Details

### getFeature

EStructuralFeature getFeature()
Return the mapped feature.

Specified by:
  `getFeature` in interface `IFeatureMapping`
Returns:
  the mapped feature.

### getTypeMapping

default ITypeMapping getTypeMapping()

Specified by:
  `getTypeMapping` in interface `IFeatureMapping`
Returns:
  The type mapping which is used for this feature mapping.

### getField

default org.eclipse.net4j.db.ddl.IDBField getField()

Specified by:
  `getField` in interface `IFeatureMapping`
Returns:
  The value field which is associated with this feature mapping.

### getDBType

default org.eclipse.net4j.db.DBType getDBType()

Specified by:
  `getDBType` in interface `IFeatureMapping`
Returns:
  The value type which is associated with this feature mapping.

### getDBTables

Collection<org.eclipse.net4j.db.ddl.IDBTable> getDBTables()
Returns all DB tables which are used by this feature.

Returns:
  a collection of all tables of this feature.

### writeValues

void writeValues(IDBStoreAccessor accessor, InternalCDORevision revision)
Write a complete list of values to the database.

Parameters:
  `accessor` - the accessor to use.
  `revision` - the revision containing the list to be written.

### readValues

void readValues(IDBStoreAccessor accessor, InternalCDORevision revision, int listChunk)
Read the list size and the complete list or the first part of it.

Parameters:
  `accessor` - the accessor to use.
  `revision` - the revision into which the list values should be read.
  `listChunk` - indicating the lazy loading behavior: `CDORevision.UNCHUNKED` means that the whole list should be read. Else, if `listChunk >= 0`, the list is filled with `InternalCDOList.UNINITIALIZED` and only the first `listChunk` values are read.

### readChunks

void readChunks(IDBStoreChunkReader dbStoreChunkReader, List<IStoreChunkReader.Chunk> chunks, String where)
Used to load-on-demand chunks of a list.

Parameters:
  `dbStoreChunkReader` - the chunkReader to use
  `chunks` - the chunks to read
  `where` - the where-clause to use in order to read the chunks.

### objectDetached

void objectDetached(IDBStoreAccessor accessor, CDOID id, long revised)
Hook with which a list mapping is notified that a containing object has been revised. Can be implemented in order to clean up lists of revised objects.

Parameters:
  `accessor` - the accessor to use.
  `id` - the ID of the object which has been revised.
  `revised` - the timestamp at which the object was revised.
Since:
  3.0

### queryXRefs

boolean queryXRefs(IDBStoreAccessor accessor, String mainTableName, String mainTableWhere, IStoreAccessor.QueryXRefsContext context, String idString)
Retrieve cross-references from DB.

Since:
  4.0
See Also:
  - `IClassMapping.queryXRefs(IDBStoreAccessor, IStoreAccessor.QueryXRefsContext, String)`
  - `IStoreAccessor.queryXRefs(IStoreAccessor.QueryXRefsContext)`