Interface RowMapper

All Known Subinterfaces:
CachingMapper, Mapper
All Known Implementing Classes:
JDBCMapper, JDBCRowMapper, SoftRefCachingMapper, SoftRefCachingRowMapper, UnifiedCachingMapper, UnifiedCachingRowMapper

public interface RowMapper
A RowMapper maps Rows to and from the database.

These are the operations that can benefit from a cache.

See Also:
  • Method Details

    • generateNewId

      Serializable generateNewId()
      Computes a new unique id.
      Returns:
      a new unique id
    • read

      List<? extends RowId> read(Collection<RowId> rowIds, boolean cacheOnly)
      Reads a set of rows for the given RowIds.

      For each requested row, either a Row is found and returned, or a RowId (not implementing Row) is returned to signify an absent row.

      Parameters:
      rowIds - the row ids (including their table name)
      cacheOnly - if true, only hit memory
      Returns:
      the collection of Rows (or RowIds if the row was absent from the database). Order is not the same as the input rowIds
    • write

      void write(RowMapper.RowBatch batch)
      Writes a set of rows. This includes creating, updating and deleting rows.
      Parameters:
      batch - the set of rows and the operations to do on them
    • readSimpleRow

      Row readSimpleRow(RowId rowId)
      Gets a row for a SimpleFragment from the database, given its table name and id. If the row doesn't exist, null is returned.
      Parameters:
      rowId - the row id
      Returns:
      the row, or null
    • getBinaryFulltext

      Map<String,String> getBinaryFulltext(RowId rowId)
      Gets the fulltext extracted from the binary fields.
      Parameters:
      rowId - the row id
      Returns:
      the fulltext string representation or null if unsupported
      Since:
      5.9.3
    • readCollectionRowArray

      Serializable[] readCollectionRowArray(RowId rowId)
      Gets an array for a CollectionFragment from the database, given its table name and id. If no rows are found, an empty array is returned.
      Parameters:
      rowId - the row id
      Returns:
      the array
    • readSelectionRows

      List<Row> readSelectionRows(SelectionType selType, Serializable selId, Serializable filter, Serializable criterion, boolean limitToOne)
      Reads the rows corresponding to a selection.
      Parameters:
      selType - the selection type
      selId - the selection id (parent id for a hierarchy selection)
      filter - the filter value (name for a hierarchy selection)
      criterion - an optional additional criterion depending on the selection type (complex prop flag for a hierarchy selection)
      limitToOne - whether to stop after one row retrieved
      Returns:
      the list of rows
    • readSelectionsIds

      Set<Serializable> readSelectionsIds(SelectionType selType, List<Serializable> values)
      Gets all the selection ids for a given list of values.
      Since:
      9.2
    • copy

      @Deprecated default RowMapper.CopyResult copy(RowMapper.IdWithTypes source, Serializable destParentId, String destName, Row overwriteRow, boolean excludeSpecialChildren)
      Deprecated.
      since 11.3, use other signature instead
      Copies the hierarchy starting from a given row to a new parent with a new name.

      If the new parent is null, then this is a version creation, which doesn't recurse in regular children.

      If overwriteRow is passed, the copy is done onto this existing node as its root (version restore) instead of creating a new node in the parent.

      Parameters:
      source - the id, primary type and mixin types of the row to copy
      destParentId - the new parent id, or null
      destName - the new name
      overwriteRow - when not null, the copy is done onto this existing row, and the values are set in hierarchy
      excludeSpecialChildren - the flag to exclude special children from copy
      Returns:
      info about the copy
    • copy

      RowMapper.CopyResult copy(RowMapper.IdWithTypes source, Serializable destParentId, String destName, Row overwriteRow, boolean excludeSpecialChildren, boolean excludeACL)
      Copies the hierarchy starting from a given row to a new parent with a new name.

      If the new parent is null, then this is a version creation, which doesn't recurse in regular children.

      If overwriteRow is passed, the copy is done onto this existing node as its root (version restore) instead of creating a new node in the parent.

      Parameters:
      source - the id, primary type and mixin types of the row to copy
      destParentId - the new parent id, or null
      destName - the new name
      overwriteRow - when not null, the copy is done onto this existing row, and the values are set in hierarchy
      excludeSpecialChildren - the flag to exclude special children from copy
      excludeACL - the flag to exclude ACL from copy
      Returns:
      info about the copy
      Since:
      11.3
    • getDescendantsInfo

      List<RowMapper.NodeInfo> getDescendantsInfo(Serializable rootId)
      Gets descendants infos from a given root node. This does not include information about the root node itself.
      Parameters:
      rootId - the root node id from which to get descendants info
      Returns:
      the list of descendant nodes info
      Since:
      9.2
    • remove

      void remove(Serializable rootId, List<RowMapper.NodeInfo> nodeInfos)
      Deletes a hierarchy.
      Parameters:
      rootId - the id of the root node to be deleted with its children
      nodeInfos - the information about all descendants being deleted along the root node
      Since:
      9.2
    • receiveInvalidations

      VCSInvalidations receiveInvalidations()
      Processes and returns the invalidations queued for processing by the cache (if any).

      Called pre-transaction by session start or transactionless save;

      Returns:
      the invalidations, or null
    • sendInvalidations

      void sendInvalidations(VCSInvalidations invalidations)
      Post-transaction invalidations notification.

      Called post-transaction by session commit/rollback or transactionless save.

      Parameters:
      invalidations - the known invalidations to send to others, or null
    • clearCache

      void clearCache()
      Clears the mapper's cache (if any)

      Called after a rollback, or a manual clear through RepositoryStatus MBean.

    • getCacheSize

      long getCacheSize()
      Evaluate the cached elements size
      Since:
      5.7.2
    • rollback

      void rollback()
      Rollback the transaction.

      This is in the RowMapper interface because on rollback the cache must be invalidated.