Class MemorySailStore.MemorySailSink

java.lang.Object
org.eclipse.rdf4j.sail.memory.MemorySailStore.MemorySailSink
All Implemented Interfaces:
AutoCloseable, SailClosable, SailSink
Enclosing class:
MemorySailStore

private final class MemorySailStore.MemorySailSink extends Object implements SailSink
  • Field Details

    • closed

      private volatile boolean closed
    • explicit

      private final boolean explicit
    • serializable

      private final int serializable
    • reservedSnapshot

      private final MemorySailStore.SnapshotMonitor.ReservedSnapshot reservedSnapshot
    • nextSnapshot

      private int nextSnapshot
    • observations

      private Set<StatementPattern> observations
    • txnLock

      private volatile boolean txnLock
    • requireCleanup

      private boolean requireCleanup
  • Constructor Details

  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • prepare

      public void prepare() throws SailException
      Description copied from interface: SailSink
      Checks if this SailSink is consistent with the isolation level it was created with. If this Sink was created with a IsolationLevels.SERIALIZABLE and another conflicting SailSink has already been SailSink.flush()ed, this method will throw a SailConflictException.
      Specified by:
      prepare in interface SailSink
      Throws:
      SailException
    • flush

      public void flush() throws SailException
      Description copied from interface: SailSink
      Once this method returns successfully, changes that were made to this SailSink will be visible to subsequent SailSource.dataset(IsolationLevel).
      Specified by:
      flush in interface SailSink
      Throws:
      SailException
    • close

      public void close()
      Description copied from interface: SailClosable
      Closes this resource, relinquishing any underlying resources.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface SailClosable
    • releaseLock

      private void releaseLock()
    • setNamespace

      public void setNamespace(String prefix, String name)
      Description copied from interface: SailSink
      Sets the prefix for a namespace.
      Specified by:
      setNamespace in interface SailSink
      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

      public void removeNamespace(String prefix)
      Description copied from interface: SailSink
      Removes a namespace declaration by removing the association between a prefix and a namespace name.
      Specified by:
      removeNamespace in interface SailSink
      Parameters:
      prefix - The namespace prefix, or an empty string in case of the default namespace.
    • clearNamespaces

      public void clearNamespaces()
      Description copied from interface: SailSink
      Removes all namespace declarations from this SailSource.
      Specified by:
      clearNamespaces in interface SailSink
    • observe

      public void observe(Resource subj, IRI pred, Value obj, Resource... contexts) throws SailException
      Description copied from interface: SailSink
      Called to indicate matching statements have been observed and must not change their state until after this SailSink is committed, iff this was opened in an isolation level compatible with IsolationLevels.SERIALIZABLE.
      Specified by:
      observe in interface SailSink
      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

      public void clear(Resource... contexts)
      Description copied from interface: SailSink
      Removes all statements from the specified/all contexts. If no contexts are specified the method operates on the entire repository.
      Specified by:
      clear in interface SailSink
      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

      public void approve(Resource subj, IRI pred, Value obj, Resource ctx)
      Description copied from interface: SailSink
      Adds a statement to the store.
      Specified by:
      approve in interface SailSink
      Parameters:
      subj - The subject of the statement to add.
      pred - The predicate of the statement to add.
      obj - The object of the statement to add.
      ctx - The context to add the statement to.
    • approveAll

      public void approveAll(Set<Statement> approved, Set<Resource> approvedContexts)
      Specified by:
      approveAll in interface SailSink
    • deprecateAll

      public void deprecateAll(Set<Statement> deprecated)
      Specified by:
      deprecateAll in interface SailSink
    • deprecate

      public void deprecate(Statement statement) throws SailException
      Description copied from interface: SailSink
      Removes a statement.
      Specified by:
      deprecate in interface SailSink
      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

      private void innerDeprecate(Statement statement, int nextSnapshot)
    • acquireExclusiveTransactionLock

      private void acquireExclusiveTransactionLock() throws SailException
      Throws:
      SailException
    • addStatement

      private MemStatement addStatement(Resource subj, IRI pred, Value obj, Resource context, boolean explicit) throws SailException, InterruptedException
      Throws:
      SailException
      InterruptedException
    • 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

      public boolean deprecateByQuery(Resource subj, IRI pred, Value obj, Resource[] contexts)
      Description copied from interface: SailSink
      Removes all statements with the specified subject, predicate, object, and context. All four parameters may be null.
      Specified by:
      deprecateByQuery in interface SailSink