public interface DocumentStore
Modifier and Type | Method and Description |
---|---|
boolean |
containsKey(String key)
Determine whether the database contains an entry with the supplied key.
|
String |
createExternalProjection(String projectedNodeKey,
String sourceName,
String externalPath,
String alias)
Creates an external projection from the federated node with the given key, towards the external node from the given path,
from a source.
|
EditableDocument |
edit(String key,
boolean createIfMissing)
Edit the existing document at the given key.
|
SchematicEntry |
get(String key)
Get the entry with the supplied key.
|
Document |
getChildReference(String parentKey,
String childKey)
Returns a document representing a single child reference from the supplied parent to the supplied child.
|
Document |
getChildrenBlock(String key)
Returns a document representing a block of children, that has the given key.
|
ExternalBinaryValue |
getExternalBinary(String sourceName,
String id)
Retrieves a binary value which has the given id and which is not stored by ModeShape.
|
String |
getLocalSourceKey()
Returns the value of the local repository source key.
|
List<SchematicEntry> |
load(Collection<String> keys)
Loads a set of entries from the document store.
|
LocalDocumentStore |
localStore()
Returns a local store instance which is used to persist internal repository information.
|
boolean |
lockDocuments(Collection<String> keys)
Attempts to lock all of the documents with the given keys.
|
boolean |
lockDocuments(String... keys)
Attempts to lock all of the documents with the given keys.
|
String |
newDocumentKey(String parentKey,
Name documentName,
Name documentPrimaryType)
Generates a new key which will be assigned to a new child document when it is being added to its parent.
|
boolean |
remove(String key)
Remove the existing document at the given key.
|
void |
setLocalSourceKey(String sourceKey)
Sets the value of the local repository source key.
|
SchematicEntry |
storeIfAbsent(String key,
Document document)
Store the supplied document at the given key.
|
void |
updateDocument(String key,
Document document,
SessionNode sessionNode)
Updates the content of the document at the given key with the given document.
|
SchematicEntry get(String key)
key
- the key or identifier for the documentDocumentStoreException
- if there is a problem retrieving the documentSchematicDb.get(String)
List<SchematicEntry> load(Collection<String> keys)
keys
- a Set
of document keys; may not be nullCollection
of entries
; never null
@RequiresTransaction SchematicEntry storeIfAbsent(String key, Document document)
key
- the key or identifier for the documentdocument
- the document that is to be storedDocumentStoreException
- if there is a problem storing the documentSchematicDb.putIfAbsent(String, Document)
@RequiresTransaction void updateDocument(String key, Document document, SessionNode sessionNode)
key
- the key or identifier for the documentdocument
- the content with which the existing document should be updatedsessionNode
- the SessionNode
instance which contains the changes that caused the updateDocumentStoreException
- if there is a problem updating the documentString newDocumentKey(String parentKey, Name documentName, Name documentPrimaryType)
parentKey
- a non-null
String
, the key of the existing parentdocumentName
- non-null
Name
, the name of the new child document.documentPrimaryType
- non-null
Name
, the name of the primary type of the new
child documentString
which will be assigned as key to the new child, or null
indicating that no preferred key
is to be used. If this is the case, the repository will assign a random key.@RequiresTransaction boolean lockDocuments(Collection<String> keys)
NOTE: This should only be called within an existing transaction. If this operation succeeds, all the locked keys will be released automatically when the transaction completes (regardless whether successfully or not).
keys
- the set of keys identifying the documents that are to be updated via
updateDocument(String, Document, SessionNode)
or via edit(String,boolean)
.IllegalStateException
- if no active transaction can be detected when the locking is attempted
|@RequiresTransaction boolean lockDocuments(String... keys)
NOTE: This should only be called within an existing transaction. If this operation succeeds, all the locked keys will be released automatically when the transaction completes (regardless whether successfully or not)
keys
- the set of keys identifying the documents that are to be updated via
updateDocument(String, Document, SessionNode)
or via edit(String,boolean)
.IllegalStateException
- if no active transaction can be detected when the locking is attempted@RequiresTransaction EditableDocument edit(String key, boolean createIfMissing)
NOTE: This method does not perform any locking on that key. As such, the caller code should make sure
lockDocuments(java.util.Collection<java.lang.String>)
is called first on all the keys that are about to be changed if the operation
can be performed from a concurrent context.
key
- the key or identifier for the documentcreateIfMissing
- true if a new entry should be created and added to the database if an existing entry does not existEditableDocument
instance if either a document exists at the given key or a new one was created and added
successfully. If a document does not already exist and cannot be created, then this will return null
SchematicDb.editContent(String, boolean)
@RequiresTransaction boolean remove(String key)
NOTE: This method does not perform any locking on that key. As such, the caller code should make sure
lockDocuments(java.util.Collection<java.lang.String>)
is called first on all the keys that are about to be changed if the operation
can be performed from a concurrent context.
key
- the key or identifier for the documentDocumentStoreException
- if there is a problem removing the documentSchematicDb.remove(String)
boolean containsKey(String key)
key
- the key or identifier for the documentSchematicDb.containsKey(String)
void setLocalSourceKey(String sourceKey)
sourceKey
- a non-null
stringString getLocalSourceKey()
non-null
stringLocalDocumentStore localStore()
LocalDocumentStore
instance.String createExternalProjection(String projectedNodeKey, String sourceName, String externalPath, String alias)
projectedNodeKey
- a non-null
string, the key of the federated node which will contain the projectionsourceName
- a non-null
string, the name of an external source.externalPath
- a non-null
string, representing a path towards a node from the sourcealias
- a non-null
string, representing the alias given to the projection.non-null
string representing the node key of the external node located at externalPath
.Document getChildrenBlock(String key)
key
- a non-null
String the key of the blockDocument
with children and possibly a pointer to the next block, or null
if there isn't a
block with such a key.Document getChildReference(String parentKey, String childKey)
parentKey
- the key for the parentchildKey
- the key for the childExternalBinaryValue getExternalBinary(String sourceName, String id)
sourceName
- a non-null
String; the name of an external sourceid
- a non-null
String; the id of an external binary valueExternalBinaryValue
implementation or null
Copyright © 2008–2016 JBoss, a division of Red Hat. All rights reserved.