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

## Interface IListMapping

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

      public interface IListMapping

  Interface for mapping features with `isMany() == true`.
  Since:
    2.0
  Author:
    Eike Stepper, Stefan Winkler

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Collection<org.eclipse.net4j.db.ddl.IDBTable>` | `getDBTables()` | Returns all DB tables which are used by this feature.
    `org.eclipse.emf.ecore.EStructuralFeature` | `getFeature()` | Return the mapped feature.
    `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, java.lang.String mainTableName, java.lang.String mainTableWhere, IStoreAccessor.QueryXRefsContext context, java.lang.String idString)` | Retrieve cross-references from DB.
    `void` | `readChunks​(IDBStoreChunkReader dbStoreChunkReader, java.util.List<IStoreChunkReader.Chunk> chunks, java.lang.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 Detail

    - #### getFeature

          org.eclipse.emf.ecore.EStructuralFeature getFeature()

      Return the mapped feature.
      Returns:
        the mapped feature.

    - #### getDBTables

          java.util.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,
                          java.util.List<IStoreChunkReader.Chunk> chunks,
                          java.lang.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,
                             java.lang.String mainTableName,
                             java.lang.String mainTableWhere,
                             IStoreAccessor.QueryXRefsContext context,
                             java.lang.String idString)

      Retrieve cross-references from DB.
      Since:
        4.0
      See Also:
        `IClassMapping.queryXRefs(IDBStoreAccessor, IStoreAccessor.QueryXRefsContext, String)`, `IStoreAccessor.queryXRefs(IStoreAccessor.QueryXRefsContext)`