Class ReadOnlyRevisions

    • Method Detail

      • 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
        Description copied from interface: Revisions
        Atomically set the record id of the current head state to the value returned from the newHead function when called with the record id of the current head.

        All record ids must be valid ids for SegmentNodeStates.

        The behaviour of this method regarding locking and handling null values returned by newHead is implementation specific.

        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:
        InterruptedException - Blocking implementations may throw this exception whe interrupted.