Class MemoryStoreRevisions

java.lang.Object
org.apache.jackrabbit.oak.segment.memory.MemoryStoreRevisions
All Implemented Interfaces:
Revisions

public class MemoryStoreRevisions extends Object implements Revisions
This is a simple in memory Revisions implementation. It is non blocking and does not support any Revisions.Options.
  • Constructor Details

    • MemoryStoreRevisions

      public MemoryStoreRevisions()
  • Method Details

    • bind

      public void bind(MemoryStore store) throws IOException
      Bind this instance to a store.
      Throws:
      IOException
    • getHead

      @NotNull public @NotNull RecordId getHead()
      Description copied from interface: Revisions
      Returns the record id of the head state. The returned id is a valid id for a SegmentNodeState.
      Specified by:
      getHead in interface Revisions
      Returns:
      id of the head state
    • getPersistedHead

      @NotNull public @NotNull RecordId getPersistedHead()
      Description copied from interface: Revisions
      Returns the persisted to disk record id of the head state. The returned id is a valid id for a SegmentNodeState.
      Specified by:
      getPersistedHead in interface Revisions
      Returns:
      id of the head state
    • setHead

      public boolean setHead(@NotNull @NotNull RecordId expected, @NotNull @NotNull RecordId head, @NotNull @NotNull Revisions.Option... options)
      Description copied from interface: Revisions
      Atomically set the record id of the current head state to the given head state if the current head state matches the expected value.

      All record ids must be valid ids for SegmentNodeStates.

      The locking behaviour of this method regarding implementation specific.

      Specified by:
      setHead in interface Revisions
      Parameters:
      expected - the expected head for the update to take place
      head - the new head to update to
      options - implementation specific options
      Returns:
      true if the current head was successfully updated, false otherwise.
    • setHead

      public RecordId setHead(@NotNull @NotNull Function<RecordId,RecordId> newHead, @NotNull @NotNull Revisions.Option... options) throws InterruptedException
      Not supported: throws UnsupportedOperationException
      Specified by:
      setHead in interface Revisions
      Parameters:
      newHead - function mapping an record id to the record id to which the current head id should be set.
      options - implementation specific options
      Returns:
      the record id of the root node if the current head was successfully updated, null otherwise.
      Throws:
      UnsupportedOperationException - always
      InterruptedException - Blocking implementations may throw this exception whe interrupted.