Interface NodeStore
- All Known Implementing Classes:
MemoryNodeStore,ProxyNodeStore
public interface NodeStore
Storage abstraction for trees. At any given point in time the stored
tree is rooted at a single immutable node state.
This is a low-level interface that doesn't cover functionality like merging concurrent changes or rejecting new tree states based on some higher-level consistency constraints.
-
Method Summary
Modifier and TypeMethodDescription@NotNull Stringcheckpoint(long lifetime) Creates a new checkpoint of the latest root of the tree.@NotNull Stringcheckpoint(long lifetime, @NotNull Map<String, String> properties) Creates a new checkpoint of the latest root of the tree.checkpointInfo(@NotNull String checkpoint) Retrieve the properties associated with a checkpoint.Returns all valid checkpoints.@NotNull org.apache.jackrabbit.oak.api.BlobcreateBlob(InputStream inputStream) Create aBlobfrom the given input stream.@Nullable org.apache.jackrabbit.oak.api.BlobGet a blob by its reference.@NotNull NodeStategetRoot()Returns the latest state of the tree.@NotNull NodeStatemerge(@NotNull NodeBuilder builder, @NotNull CommitHook commitHook, @NotNull CommitInfo info) @NotNull NodeStaterebase(@NotNull NodeBuilder builder) booleanReleases the provided checkpoint.reset(@NotNull NodeBuilder builder) Reset the passedbuilderby throwing away all its changes and setting its base state to the current root state.@Nullable NodeStateRetrieves the root node from a previously created repository checkpoint.
-
Method Details
-
getRoot
Returns the latest state of the tree.- Returns:
- root node state
-
merge
@NotNull @NotNull NodeState merge(@NotNull @NotNull NodeBuilder builder, @NotNull @NotNull CommitHook commitHook, @NotNull @NotNull CommitInfo info) throws org.apache.jackrabbit.oak.api.CommitFailedException - Parameters:
builder- the builder whose changes to applycommitHook- the commit hook to apply while merging changesinfo- commit info associated with this merge operation- Returns:
- the node state resulting from the merge.
- Throws:
org.apache.jackrabbit.oak.api.CommitFailedException- if the merge failedIllegalArgumentException- if the builder is not acquired from a root state of this store
-
rebase
Rebases the changes between thebaseandheadstates of the given builder on top of the current root state. The base state of the given builder becomes the latestrootstate of the repository, and the head state will contain the rebased changes.- Parameters:
builder- the builder to rebase- Returns:
- the node state resulting from the rebase.
- Throws:
IllegalArgumentException- if the builder is not acquired from a root state of this store
-
reset
Reset the passedbuilderby throwing away all its changes and setting its base state to the current root state.- Parameters:
builder- the builder to reset- Returns:
- the node state resulting from the reset.
- Throws:
IllegalArgumentException- if the builder is not acquired from a root state of this store
-
createBlob
@NotNull @NotNull org.apache.jackrabbit.oak.api.Blob createBlob(InputStream inputStream) throws IOException Create aBlobfrom the given input stream. The input stream is closed after this method returns.- Parameters:
inputStream- The input stream for theBlob- Returns:
- The
BlobrepresentinginputStream - Throws:
IOException- If an error occurs while reading from the stream
-
getBlob
Get a blob by its reference.- Parameters:
reference- reference to the blob- Returns:
- blob or
nullif the reference does not resolve to a blob. - See Also:
-
Blob.getReference()
-
checkpoint
Creates a new checkpoint of the latest root of the tree. The checkpoint remains valid for at least as long as requested and allows that state of the repository to be retrieved using the returned opaque string reference.The
propertiespassed to this methods are associated with the checkpoint and can be retrieved through thecheckpointInfo(String)method. Its semantics is entirely application specific.- Parameters:
lifetime- time (in milliseconds, > 0) that the checkpoint should remain availableproperties- properties to associate with the checkpoint- Returns:
- string reference of this checkpoint
-
checkpoint
Creates a new checkpoint of the latest root of the tree. The checkpoint remains valid for at least as long as requested and allows that state of the repository to be retrieved using the returned opaque string reference.This method is a shortcut for
checkpoint(long, Map)passing an empty map for its 2nd argument.- Parameters:
lifetime- time (in milliseconds, > 0) that the checkpoint should remain available- Returns:
- string reference of this checkpoint
-
checkpointInfo
Retrieve the properties associated with a checkpoint.- Parameters:
checkpoint- string reference of a checkpoint- Returns:
- the properties associated with the checkpoint referenced by
checkpointor an empty map when there is no such checkpoint.
-
checkpoints
Returns all valid checkpoints. The returnedIterableprovides a snapshot of valid checkpoints at the time this method is called. That is, theIterablewill not reflect checkpoints created after this method was called.See
checkpoint(long, Map)for a definition of a valid checkpoint.- Returns:
- valid checkpoints.
-
retrieve
Retrieves the root node from a previously created repository checkpoint.- Parameters:
checkpoint- string reference of a checkpoint- Returns:
- the root node of the checkpoint,
or
nullif the checkpoint is no longer available
-
release
Releases the provided checkpoint. If the provided checkpoint doesn't exist this method should returntrue.- Parameters:
checkpoint- string reference of a checkpoint- Returns:
trueif the checkpoint was successfully removed, or if it doesn't exist
-