public class SoftRefCachingMapper extends SoftRefCachingRowMapper implements CachingMapper
Mapper
that uses a SoftRefCachingRowMapper
for row-related operation, and delegates to the
Mapper
for others.Mapper.Identification
RowMapper.CopyResult, RowMapper.IdWithTypes, RowMapper.NodeInfo, RowMapper.RowBatch, RowMapper.RowUpdate
Modifier and Type | Field and Description |
---|---|
Mapper |
mapper
The
Mapper to which operations are delegated. |
cacheQueue
CLOSE, GET_IDENTIFICATION
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
Constructor and Description |
---|
SoftRefCachingMapper() |
Modifier and Type | Method and Description |
---|---|
int |
cleanupDeletedRows(int max,
Calendar beforeTime)
Cleans up (hard-delete) any rows that have been soft-deleted in the database.
|
void |
close() |
void |
commit(Xid xid,
boolean onePhase) |
void |
connect() |
String |
createClusterNode()
Informs the cluster that this node exists.
|
void |
createDatabase()
Creates the necessary structures in the database.
|
void |
disconnect() |
void |
end(Xid xid,
int flags) |
void |
forget(Xid xid) |
Set<Serializable> |
getAncestorsIds(Collection<Serializable> ids)
Gets the ids for all the ancestors of the given row ids.
|
Invalidations |
getClusterInvalidations(String nodeId)
Gets the invalidations from other cluster nodes.
|
Mapper.Identification |
getIdentification()
Returns the repository id and mapper id assigned.
|
Lock |
getLock(Serializable id)
Gets the lock state of a document.
|
Serializable |
getRootId(String repositoryId)
Gets the root id for a given repository, if registered.
|
int |
getTableSize(String tableName) |
int |
getTransactionTimeout() |
void |
initialize(String repositoryName,
Model model,
Mapper mapper,
InvalidationsPropagator cachePropagator,
Map<String,String> properties)
Initialize the caching mapper instance
|
void |
insertClusterInvalidations(Invalidations invalidations,
String nodeId)
Inserts the invalidation rows for the other cluster nodes.
|
boolean |
isConnected() |
boolean |
isSameRM(XAResource xares) |
void |
markReferencedBinaries(BinaryGarbageCollector gc)
Marks the binaries referenced by this mapper with the referenced binary garbage collector.
|
int |
prepare(Xid xid) |
PartialList<Serializable> |
query(String query,
String queryType,
QueryFilter queryFilter,
boolean countTotal)
Makes a NXQL query to the database.
|
PartialList<Serializable> |
query(String query,
String queryType,
QueryFilter queryFilter,
long countUpTo)
Makes a NXQL query to the database.
|
IterableQueryResult |
queryAndFetch(String query,
String queryType,
QueryFilter queryFilter,
Object... params)
Makes a query to the database and returns an iterable (which must be closed when done).
|
void |
rebuildReadAcls() |
Xid[] |
recover(int flag) |
void |
removeClusterNode()
Removes this node from the cluster.
|
Lock |
removeLock(Serializable id,
String owner,
boolean force)
Removes a lock from a document.
|
Lock |
setLock(Serializable id,
Lock lock)
Sets a lock on a document.
|
void |
setRootId(Serializable repositoryId,
Serializable id)
Records the newly generated root id for a given repository.
|
boolean |
setTransactionTimeout(int seconds) |
void |
start(Xid xid,
int flags) |
void |
updateReadAcls() |
clearCache, copy, generateNewId, getBinaryFulltext, getCacheSize, initialize, read, readCollectionRowArray, readSelectionRows, readSimpleRow, receiveInvalidations, remove, rollback, sendInvalidations, write
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
clearCache, copy, generateNewId, getBinaryFulltext, getCacheSize, read, readCollectionRowArray, readSelectionRows, readSimpleRow, receiveInvalidations, remove, rollback, sendInvalidations, write
rollback
public void initialize(String repositoryName, Model model, Mapper mapper, InvalidationsPropagator cachePropagator, Map<String,String> properties)
CachingMapper
initialize
in interface CachingMapper
public Mapper.Identification getIdentification() throws StorageException
Mapper
This is used in remote stateless mode to be able to identify to which mapper an incoming connection is targeted, and from which repository instance.
getIdentification
in interface Mapper
StorageException
- when initial connection failed (for a NetMapper)public void close() throws StorageException
close
in interface Mapper
close
in class SoftRefCachingRowMapper
StorageException
public int getTableSize(String tableName) throws StorageException
getTableSize
in interface Mapper
StorageException
public void createDatabase() throws StorageException
Mapper
createDatabase
in interface Mapper
StorageException
public Serializable getRootId(String repositoryId) throws StorageException
Mapper
getRootId
in interface Mapper
repositoryId
- the repository idStorageException
public void setRootId(Serializable repositoryId, Serializable id) throws StorageException
Mapper
setRootId
in interface Mapper
repositoryId
- the repository id, usually 0id
- the root idStorageException
public PartialList<Serializable> query(String query, String queryType, QueryFilter queryFilter, boolean countTotal) throws StorageException
Mapper
query
in interface Mapper
query
- the queryqueryFilter
- the query filtercountTotal
- if true
, count the total size without limit/offsetStorageException
public PartialList<Serializable> query(String query, String queryType, QueryFilter queryFilter, long countUpTo) throws StorageException
Mapper
query
in interface Mapper
query
- the queryqueryFilter
- the query filtercountUpTo
- if -1
, count the total size without offset/limit.0
, don't count the total size.n
, count the total number if there are less than n documents otherwise set the size to
-1
.StorageException
public IterableQueryResult queryAndFetch(String query, String queryType, QueryFilter queryFilter, Object... params) throws StorageException
Mapper
queryAndFetch
in interface Mapper
query
- the queryqueryType
- the query typequeryFilter
- the query filterparams
- optional query-type-dependent parametersStorageException
public Set<Serializable> getAncestorsIds(Collection<Serializable> ids) throws StorageException
Mapper
getAncestorsIds
in interface Mapper
ids
- the idsStorageException
public void updateReadAcls() throws StorageException
updateReadAcls
in interface Mapper
StorageException
public void rebuildReadAcls() throws StorageException
rebuildReadAcls
in interface Mapper
StorageException
public String createClusterNode() throws StorageException
Mapper
createClusterNode
in interface Mapper
StorageException
public void removeClusterNode() throws StorageException
Mapper
removeClusterNode
in interface Mapper
StorageException
public void insertClusterInvalidations(Invalidations invalidations, String nodeId) throws StorageException
Mapper
insertClusterInvalidations
in interface Mapper
StorageException
public Invalidations getClusterInvalidations(String nodeId) throws StorageException
Mapper
getClusterInvalidations
in interface Mapper
StorageException
public Lock getLock(Serializable id) throws StorageException
Mapper
If the document does not exist, null
is returned.
getLock
in interface Mapper
id
- the document idnull
when there is no lockStorageException
public Lock setLock(Serializable id, Lock lock) throws StorageException
Mapper
If the document is already locked, returns its existing lock status (there is no re-locking, Mapper.removeLock(java.io.Serializable, java.lang.String, boolean)
must be called first).
setLock
in interface Mapper
id
- the document idlock
- the lock object to setnull
if locking succeeded, or the existing lock if locking failed, or aStorageException
public Lock removeLock(Serializable id, String owner, boolean force) throws StorageException
Mapper
The previous lock is returned.
If owner
is null
then the lock is unconditionally removed.
If owner
is not null
, it must match the existing lock owner for the lock to be removed. If it
doesn't match, the returned lock will return true
for Lock.getFailed()
.
removeLock
in interface Mapper
id
- the document idforce
- true
to just do the remove and not return the previous lockStorageException
public void markReferencedBinaries(BinaryGarbageCollector gc) throws StorageException
Mapper
markReferencedBinaries
in interface Mapper
gc
- the binary garbage collectorStorageException
public int cleanupDeletedRows(int max, Calendar beforeTime) throws StorageException
Mapper
cleanupDeletedRows
in interface Mapper
max
- the maximum number of rows to delete at a timebeforeTime
- the maximum deletion time of the rows to deleteStorageException
public void start(Xid xid, int flags) throws XAException
start
in interface XAResource
XAException
public void end(Xid xid, int flags) throws XAException
end
in interface XAResource
XAException
public int prepare(Xid xid) throws XAException
prepare
in interface XAResource
XAException
public void commit(Xid xid, boolean onePhase) throws XAException
commit
in interface XAResource
XAException
public void forget(Xid xid) throws XAException
forget
in interface XAResource
XAException
public Xid[] recover(int flag) throws XAException
recover
in interface XAResource
XAException
public boolean setTransactionTimeout(int seconds) throws XAException
setTransactionTimeout
in interface XAResource
XAException
public int getTransactionTimeout() throws XAException
getTransactionTimeout
in interface XAResource
XAException
public boolean isSameRM(XAResource xares) throws XAException
isSameRM
in interface XAResource
XAException
public boolean isConnected()
isConnected
in interface Mapper
public void connect() throws StorageException
connect
in interface Mapper
StorageException
public void disconnect()
disconnect
in interface Mapper
Copyright © 2015 Nuxeo SA. All rights reserved.