public class MarkLogicRepository extends DBSRepositoryBase
Repository
.DBSRepositoryBase.BlobFinder, DBSRepositoryBase.DBSSessionInvoker, DBSRepositoryBase.IdType, DBSRepositoryBase.TransactionContext
Modifier and Type | Field and Description |
---|---|
static String |
DB_DEFAULT |
protected static String |
NOSCROLL_ID |
protected List<MarkLogicRangeElementIndexDescriptor> |
rangeElementIndexes |
protected long |
sequenceLastValue
Last value used from the in-memory sequence.
|
protected com.marklogic.xcc.ContentSource |
xccContentSource |
blobManager, cm, DEBUG_UUIDS, fulltextConfiguration, idType, lockManager, repositoryName, selfRegisteredLockManager, transactionContexts, TYPE_ROOT
Constructor and Description |
---|
MarkLogicRepository(javax.resource.spi.ConnectionManager cm,
MarkLogicRepositoryDescriptor descriptor) |
Modifier and Type | Method and Description |
---|---|
void |
clearLockManagerCaches()
Clears any cache held by the lock manager.
|
void |
closeLockManager()
Closes the lock manager and releases resources.
|
void |
createState(State state)
Creates a document.
|
void |
createStates(List<State> states)
Creates documents.
|
void |
deleteStates(Set<String> ids)
Deletes a set of document.
|
String |
generateNewId()
Generates a new id for a document.
|
List<DBSRepositoryBase.IdType> |
getAllowedIdTypes()
Gets the allowed id types for this DBS repository.
|
Lock |
getLock(String id)
Gets the lock on a document.
|
protected Long |
getNextSequenceId() |
boolean |
hasChild(String parentId,
String name,
Set<String> ignored)
Checks if a document has a child with the given name
|
protected void |
initBlobsPaths() |
protected void |
initRepository() |
void |
markReferencedBinaries()
Marks the binaries in use by passing them to the binary manager(s)'s GC mark() method.
|
static com.marklogic.xcc.ContentSource |
newMarkLogicContentSource(MarkLogicRepositoryDescriptor descriptor) |
PartialList<Map<String,Serializable>> |
queryAndFetch(DBSExpressionEvaluator evaluator,
OrderByClause orderByClause,
boolean distinctDocuments,
int limit,
int offset,
int countUpTo)
Queries the repository for documents matching a NXQL query, and returns a projection of the documents.
|
List<State> |
queryKeyValue(String key,
Object value,
Set<String> ignored)
Queries the repository for documents having key = value.
|
List<State> |
queryKeyValue(String key1,
Object value1,
String key2,
Object value2,
Set<String> ignored)
Queries the repository for documents having key1 = value1 and key2 = value2.
|
void |
queryKeyValueArray(String key,
Object value,
Set<String> ids,
Map<String,String> proxyTargets,
Map<String,Object[]> targetProxies)
Queries the repository for document ids having value in key (an array).
|
boolean |
queryKeyValuePresence(String key,
String value,
Set<String> ignored)
Queries the repository to check if there are documents having key = value.
|
State |
readChildState(String parentId,
String name,
Set<String> ignored)
Reads the state of a child document.
|
State |
readState(String id)
Reads the state of a document.
|
List<State> |
readStates(List<String> ids)
Reads the states of several documents.
|
Lock |
removeLock(String id,
String owner)
Removes the lock from a document.
|
ScrollResult |
scroll(DBSExpressionEvaluator evaluator,
int batchSize,
int keepAliveInSecond)
Executes the given query and returns the first batch of results, next batch must be requested
within the
keepAliveSeconds delay. |
ScrollResult |
scroll(String scrollId)
Get the next batch of result, the
scrollId is part of the previous ScrollResult response. |
Lock |
setLock(String id,
Lock lock)
Sets a lock on a document.
|
void |
updateState(String id,
State.StateDiff diff)
Updates a document.
|
getActiveSessionsCount, getBlobManager, getFulltextConfiguration, getLockManager, getLockManagerName, getName, getRootId, getSession, getSession, initLockManager, initRoot, isFulltextDisabled, newSession, shutdown
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
begin, commit, rollback
canLockBeRemoved
public static final String DB_DEFAULT
protected static final String NOSCROLL_ID
protected com.marklogic.xcc.ContentSource xccContentSource
protected long sequenceLastValue
protected List<MarkLogicRangeElementIndexDescriptor> rangeElementIndexes
public MarkLogicRepository(javax.resource.spi.ConnectionManager cm, MarkLogicRepositoryDescriptor descriptor)
public List<DBSRepositoryBase.IdType> getAllowedIdTypes()
DBSRepositoryBase
getAllowedIdTypes
in class DBSRepositoryBase
public static com.marklogic.xcc.ContentSource newMarkLogicContentSource(MarkLogicRepositoryDescriptor descriptor)
protected void initRepository()
protected void initBlobsPaths()
initBlobsPaths
in class DBSRepositoryBase
public String generateNewId()
DBSRepository
protected Long getNextSequenceId()
public State readState(String id)
DBSRepository
id
- the document idnull
if not foundpublic List<State> readStates(List<String> ids)
DBSRepository
The returned states may be in a different order than the ids.
ids
- the document idsnull
if not foundpublic void createState(State state)
DBSRepository
state
- the document statepublic void createStates(List<State> states)
DBSRepository
states
- the document statespublic void updateState(String id, State.StateDiff diff)
DBSRepository
id
- the document iddiff
- the diff to applypublic void deleteStates(Set<String> ids)
DBSRepository
ids
- the document idspublic State readChildState(String parentId, String name, Set<String> ignored)
DBSRepository
parentId
- the parent document idname
- the name of the childignored
- a set of document ids that should not be considerednull
if not foundpublic boolean hasChild(String parentId, String name, Set<String> ignored)
DBSRepository
parentId
- the parent document idname
- the name of the childignored
- a set of document ids that should not be consideredtrue
if the child exists, false
if notpublic List<State> queryKeyValue(String key, Object value, Set<String> ignored)
DBSRepository
key
- the keyvalue
- the valueignored
- a set of document ids that should not be consideredpublic List<State> queryKeyValue(String key1, Object value1, String key2, Object value2, Set<String> ignored)
DBSRepository
key1
- the first keyvalue1
- the first valuekey2
- the second keyvalue2
- the second valueignored
- a set of document ids that should not be consideredpublic void queryKeyValueArray(String key, Object value, Set<String> ids, Map<String,String> proxyTargets, Map<String,Object[]> targetProxies)
DBSRepository
key
- the keyvalue
- the valueids
- the set which receives the documents idsproxyTargets
- returns a map of proxy to target among the documents foundtargetProxies
- returns a map of target to proxies among the document foundpublic boolean queryKeyValuePresence(String key, String value, Set<String> ignored)
DBSRepository
key
- the keyvalue
- the valueignored
- a set of document ids that should not be consideredtrue
if the query matches at least one document, false
if the query matches nothingpublic PartialList<Map<String,Serializable>> queryAndFetch(DBSExpressionEvaluator evaluator, OrderByClause orderByClause, boolean distinctDocuments, int limit, int offset, int countUpTo)
DBSRepository
evaluator
- the map-based evaluator for the queryorderByClause
- an ORDER BY clausedistinctDocuments
- true
if the projection should return a maximum of one row per documentlimit
- the limit on the number of documents to returnoffset
- the offset in the list of documents to returncountUpTo
- if -1
, count the total size without offset/limit.0
, don't count the total size, set it to -1
.n
, count the total number if there are less than n documents otherwise set the total size
to -2
.public ScrollResult scroll(DBSExpressionEvaluator evaluator, int batchSize, int keepAliveInSecond)
DBSRepository
keepAliveSeconds
delay.public ScrollResult scroll(String scrollId)
DBSRepository
scrollId
is part of the previous ScrollResult
response.public Lock getLock(String id)
LockManager
If the document does not exist, null
is returned.
id
- the document idnull
when there is no lockpublic Lock setLock(String id, Lock lock)
LockManager
If the document is already locked, returns its existing lock status (there is no re-locking, LockManager.removeLock(java.lang.String, java.lang.String)
must be called first).
id
- the document idlock
- the lock to setnull
if locking succeeded, or the existing lock if locking failedpublic Lock removeLock(String id, String owner)
LockManager
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()
.
id
- the document idnull
), with a failed flag if locking failedpublic void closeLockManager()
LockManager
public void clearLockManagerCaches()
LockManager
public void markReferencedBinaries()
Repository
Copyright © 2016 Nuxeo SA. All rights reserved.