Nuxeo Enterprise Platform 5.4

org.nuxeo.ecm.core.storage.sql.jdbc
Class JDBCRowMapper

java.lang.Object
  extended by org.nuxeo.ecm.core.storage.sql.jdbc.JDBCConnection
      extended by org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper
All Implemented Interfaces:
RowMapper
Direct Known Subclasses:
JDBCMapper

public class JDBCRowMapper
extends JDBCConnection
implements RowMapper

A JDBCRowMapper maps Rows to and from a JDBC database.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.nuxeo.ecm.core.storage.sql.RowMapper
RowMapper.CopyHierarchyResult, RowMapper.RowBatch, RowMapper.RowUpdate
 
Field Summary
 
Fields inherited from class org.nuxeo.ecm.core.storage.sql.jdbc.JDBCConnection
connection, logger
 
Constructor Summary
JDBCRowMapper(Model model, SQLInfo sqlInfo, javax.sql.XADataSource xadatasource, ClusterNodeHandler clusterNodeHandler)
           
 
Method Summary
 void clearCache()
          Clears the mapper's cache (if any) Called after a rollback, or a manual clear through RepositoryStatus MBean.
 RowMapper.CopyHierarchyResult copyHierarchy(java.io.Serializable sourceId, java.lang.String typeName, java.io.Serializable destParentId, java.lang.String destName, Row overwriteRow)
          Copies the hierarchy starting from a given row to a new parent with a new name.
 java.util.List<Row> getProxyRows(java.io.Serializable searchId, boolean byTarget, java.io.Serializable parentId)
          Finds proxies, maybe restricted to the children of a given parent.
 java.util.List<Row> getVersionRows(java.io.Serializable versionSeriesId)
          Gets the list of version rows for all the versions in a given version series id.
 java.util.List<? extends RowId> read(java.util.Collection<RowId> rowIds)
          Reads a set of rows for the given RowIds.
 Row readChildHierRow(java.io.Serializable parentId, java.lang.String childName, boolean complexProp)
          Reads the hierarchy row for a child, given its parent id and the child name.
 java.util.List<Row> readChildHierRows(java.io.Serializable parentId, boolean complexProp)
          Reads the hierarchy rows for all the children of parent.
 java.io.Serializable[] readCollectionRowArray(RowId rowId)
          Gets an array for a CollectionFragment from the database, given its table name and id.
 Row readSimpleRow(RowId rowId)
          Gets a row for a SimpleFragment from the database, given its table name and id.
 Invalidations.InvalidationsPair receiveInvalidations()
          Processes and returns the invalidations queued for processing by the cache (if any).
 void rollback(javax.transaction.xa.Xid xid)
          Rollback the XA Resource.
 void sendInvalidations(Invalidations invalidations)
          Post-transaction invalidations notification.
 void write(RowMapper.RowBatch batch)
          Writes a set of rows.
 
Methods inherited from class org.nuxeo.ecm.core.storage.sql.jdbc.JDBCConnection
close, getIdentification
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JDBCRowMapper

public JDBCRowMapper(Model model,
                     SQLInfo sqlInfo,
                     javax.sql.XADataSource xadatasource,
                     ClusterNodeHandler clusterNodeHandler)
              throws StorageException
Throws:
StorageException
Method Detail

receiveInvalidations

public Invalidations.InvalidationsPair receiveInvalidations()
                                                     throws StorageException
Description copied from interface: RowMapper
Processes and returns the invalidations queued for processing by the cache (if any).

Called pre-transaction by session start or transactionless save;

Specified by:
receiveInvalidations in interface RowMapper
Returns:
the invalidations (both for the mapper and the events), or null
Throws:
StorageException

sendInvalidations

public void sendInvalidations(Invalidations invalidations)
                       throws StorageException
Description copied from interface: RowMapper
Post-transaction invalidations notification.

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

Specified by:
sendInvalidations in interface RowMapper
Parameters:
invalidations - the known invalidations to send to others, or null
Throws:
StorageException

clearCache

public void clearCache()
Description copied from interface: RowMapper
Clears the mapper's cache (if any)

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

Specified by:
clearCache in interface RowMapper

rollback

public void rollback(javax.transaction.xa.Xid xid)
              throws javax.transaction.xa.XAException
Description copied from interface: RowMapper
Rollback the XA Resource.

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

Specified by:
rollback in interface RowMapper
Throws:
javax.transaction.xa.XAException

read

public java.util.List<? extends RowId> read(java.util.Collection<RowId> rowIds)
                                     throws StorageException
Description copied from interface: RowMapper
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.

Specified by:
read in interface RowMapper
Parameters:
rowIds - the row ids (including their table name)
Returns:
the collection of Rows (or RowIds if the row was absent from the database). Order is not the same as the input rowIds
Throws:
StorageException

write

public void write(RowMapper.RowBatch batch)
           throws StorageException
Description copied from interface: RowMapper
Writes a set of rows. This includes creating, updating and deleting rows.

Specified by:
write in interface RowMapper
Parameters:
batch - the set of rows and the operations to do on them
Throws:
StorageException

readSimpleRow

public Row readSimpleRow(RowId rowId)
                  throws StorageException
Description copied from interface: RowMapper
Gets a row for a SimpleFragment from the database, given its table name and id. If the row doesn't exist, null is returned.

Specified by:
readSimpleRow in interface RowMapper
Parameters:
rowId - the row id
Returns:
the row, or null
Throws:
StorageException

readCollectionRowArray

public java.io.Serializable[] readCollectionRowArray(RowId rowId)
                                              throws StorageException
Description copied from interface: RowMapper
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.

Specified by:
readCollectionRowArray in interface RowMapper
Parameters:
rowId - the row id
Returns:
the array
Throws:
StorageException

readChildHierRow

public Row readChildHierRow(java.io.Serializable parentId,
                            java.lang.String childName,
                            boolean complexProp)
                     throws StorageException
Description copied from interface: RowMapper
Reads the hierarchy row for a child, given its parent id and the child name.

Specified by:
readChildHierRow in interface RowMapper
Parameters:
parentId - the parent id
childName - the child name
complexProp - whether to get complex properties (true) or regular children(false)
Returns:
the child hierarchy row, or null
Throws:
StorageException

readChildHierRows

public java.util.List<Row> readChildHierRows(java.io.Serializable parentId,
                                             boolean complexProp)
                                      throws StorageException
Description copied from interface: RowMapper
Reads the hierarchy rows for all the children of parent.

Depending on the boolean complexProp, only the complex properties or only the regular children are returned.

Specified by:
readChildHierRows in interface RowMapper
Parameters:
parentId - the parent id
complexProp - whether to get complex properties (true) or regular children(false)
Returns:
the child hierarchy rows
Throws:
StorageException

getVersionRows

public java.util.List<Row> getVersionRows(java.io.Serializable versionSeriesId)
                                   throws StorageException
Description copied from interface: RowMapper
Gets the list of version rows for all the versions in a given version series id.

Specified by:
getVersionRows in interface RowMapper
Parameters:
versionSeriesId - the version series id
Returns:
the list of version rows
Throws:
StorageException

getProxyRows

public java.util.List<Row> getProxyRows(java.io.Serializable searchId,
                                        boolean byTarget,
                                        java.io.Serializable parentId)
                                 throws StorageException
Description copied from interface: RowMapper
Finds proxies, maybe restricted to the children of a given parent.

Specified by:
getProxyRows in interface RowMapper
Parameters:
searchId - the id to look for
byTarget - true if the searchId is a proxy target id, false if the searchId is a version series id
parentId - the parent to which to restrict, if not null
Returns:
the list of proxies rows
Throws:
StorageException

copyHierarchy

public RowMapper.CopyHierarchyResult copyHierarchy(java.io.Serializable sourceId,
                                                   java.lang.String typeName,
                                                   java.io.Serializable destParentId,
                                                   java.lang.String destName,
                                                   Row overwriteRow)
                                            throws StorageException
Description copied from interface: RowMapper
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.

Specified by:
copyHierarchy in interface RowMapper
Parameters:
sourceId - the id of row to copy (with children)
typeName - the type of the row to copy (to avoid refetching known info)
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
Returns:
info about the copy
Throws:
StorageException

Nuxeo Enterprise Platform 5.4

Copyright © 2010 Nuxeo SAS. All Rights Reserved.