Class MemorySailStore.MemorySailSink
java.lang.Object
org.eclipse.rdf4j.sail.memory.MemorySailStore.MemorySailSink
- All Implemented Interfaces:
AutoCloseable, SailClosable, SailSink
- Enclosing class:
MemorySailStore
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate final booleanprivate intprivate Set<StatementPattern> private booleanprivate final MemorySailStore.SnapshotMonitor.ReservedSnapshotprivate final intprivate Lock -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidprivate MemStatementaddStatement(Resource subj, IRI pred, Value obj, Resource context, boolean explicit) voidAdds a statement to the store.voidapproveAll(Set<Statement> approved, Set<Resource> approvedContexts) voidRemoves all statements from the specified/all contexts.voidRemoves all namespace declarations from thisSailSource.voidclose()Closes this resource, relinquishing any underlying resources.voidRemoves a statement.voiddeprecateAll(Set<Statement> deprecated) booleandeprecateByQuery(Resource subj, IRI pred, Value obj, Resource[] contexts) Removes all statements with the specified subject, predicate, object, and context.voidflush()Once this method returns successfully, changes that were made to thisSailSinkwill be visible to subsequentSailSource.dataset(IsolationLevel).private MemStatementListgetSmallestMemStatementList(MemResource memSubj, MemIRI memPred, MemValue memObj, MemResource memContext) private voidinnerDeprecate(Statement statement, int nextSnapshot) voidCalled to indicate matching statements have been observed and must not change their state until after thisSailSinkis committed, iff this was opened in an isolation level compatible withIsolationLevels.SERIALIZABLE.voidprepare()Checks if thisSailSinkis consistent with the isolation level it was created with.private voidvoidremoveNamespace(String prefix) Removes a namespace declaration by removing the association between a prefix and a namespace name.voidsetNamespace(String prefix, String name) Sets the prefix for a namespace.private booleanstatementAlreadyExists(boolean explicit, MemResource memSubj, MemIRI memPred, MemValue memObj, MemResource memContext, int nextSnapshot) toString()Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface SailSink
approve, deprecate, observe, observeAll, supportsDeprecateByQuery
-
Field Details
-
closed
private volatile boolean closed -
explicit
private final boolean explicit -
serializable
private final int serializable -
reservedSnapshot
-
nextSnapshot
private int nextSnapshot -
observations
-
txnLock
-
requireCleanup
private boolean requireCleanup
-
-
Constructor Details
-
MemorySailSink
- Throws:
SailException
-
-
Method Details
-
toString
-
prepare
Description copied from interface:SailSinkChecks if thisSailSinkis consistent with the isolation level it was created with. If this Sink was created with aIsolationLevels.SERIALIZABLEand another conflictingSailSinkhas already beenSailSink.flush()ed, this method will throw aSailConflictException.- Specified by:
preparein interfaceSailSink- Throws:
SailException
-
flush
Description copied from interface:SailSinkOnce this method returns successfully, changes that were made to thisSailSinkwill be visible to subsequentSailSource.dataset(IsolationLevel).- Specified by:
flushin interfaceSailSink- Throws:
SailException
-
close
public void close()Description copied from interface:SailClosableCloses this resource, relinquishing any underlying resources.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceSailClosable
-
releaseLock
private void releaseLock() -
setNamespace
Description copied from interface:SailSinkSets the prefix for a namespace.- Specified by:
setNamespacein interfaceSailSink- Parameters:
prefix- The new prefix, or an empty string in case of the default namespace.name- The namespace name that the prefix maps to.
-
removeNamespace
Description copied from interface:SailSinkRemoves a namespace declaration by removing the association between a prefix and a namespace name.- Specified by:
removeNamespacein interfaceSailSink- Parameters:
prefix- The namespace prefix, or an empty string in case of the default namespace.
-
clearNamespaces
public void clearNamespaces()Description copied from interface:SailSinkRemoves all namespace declarations from thisSailSource.- Specified by:
clearNamespacesin interfaceSailSink
-
observe
Description copied from interface:SailSinkCalled to indicate matching statements have been observed and must not change their state until after thisSailSinkis committed, iff this was opened in an isolation level compatible withIsolationLevels.SERIALIZABLE.- Specified by:
observein interfaceSailSink- Parameters:
subj- A Resource specifying the subject, or null for a wildcard.pred- A IRI specifying the predicate, or null for a wildcard.obj- A Value specifying the object, or null for a wildcard.contexts- The context(s) of the observed statements. Note that this parameter is a vararg and as such is optional. If no contexts are supplied the method operates on all contexts.- Throws:
SailException- If the triple source failed to observe these statements.
-
clear
Description copied from interface:SailSinkRemoves all statements from the specified/all contexts. If no contexts are specified the method operates on the entire repository.- Specified by:
clearin interfaceSailSink- Parameters:
contexts- The context(s) from which to remove the statements. Note that this parameter is a vararg and as such is optional. If no contexts are specified the method operates on the entire repository. A null value can be used to match context-less statements.
-
approve
Description copied from interface:SailSinkAdds a statement to the store. -
approveAll
-
deprecateAll
- Specified by:
deprecateAllin interfaceSailSink
-
deprecate
Description copied from interface:SailSinkRemoves a statement.- Specified by:
deprecatein interfaceSailSink- Parameters:
statement- The statement that should be removed- Throws:
SailException- If the statement could not be removed, for example because no transaction is active.
-
innerDeprecate
-
acquireExclusiveTransactionLock
- Throws:
SailException
-
addStatement
private MemStatement addStatement(Resource subj, IRI pred, Value obj, Resource context, boolean explicit) throws SailException, InterruptedException - Throws:
SailExceptionInterruptedException
-
statementAlreadyExists
private boolean statementAlreadyExists(boolean explicit, MemResource memSubj, MemIRI memPred, MemValue memObj, MemResource memContext, int nextSnapshot) throws InterruptedException - Throws:
InterruptedException
-
getSmallestMemStatementList
private MemStatementList getSmallestMemStatementList(MemResource memSubj, MemIRI memPred, MemValue memObj, MemResource memContext) -
deprecateByQuery
Description copied from interface:SailSinkRemoves all statements with the specified subject, predicate, object, and context. All four parameters may be null.- Specified by:
deprecateByQueryin interfaceSailSink
-