Class SystemRoot
- java.lang.Object
-
- org.apache.jackrabbit.oak.core.SystemRoot
-
- All Implemented Interfaces:
Root,PermissionAware
public class SystemRoot extends Object
Internal extension of theMutableRootto be used when an usage of the system internal subject is needed.
-
-
Field Summary
-
Fields inherited from interface org.apache.jackrabbit.oak.api.Root
COMMIT_PATH
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcommit()Atomically persists all changes made to the tree attached to this root.voidcommit(@NotNull Map<String,Object> info)Atomically persists all changes made to the tree attached to this root.static SystemRootcreate(@NotNull NodeStore store, @NotNull CommitHook hook, @NotNull String workspaceName, @NotNull SecurityProvider securityProvider, @NotNull QueryIndexProvider indexProvider)static SystemRootcreate(@NotNull NodeStore store, @NotNull CommitHook hook, @NotNull String workspaceName, @NotNull SecurityProvider securityProvider, @Nullable QueryEngineSettings queryEngineSettings, @NotNull QueryIndexProvider indexProvider)@NotNull BlobcreateBlob(@NotNull InputStream inputStream)Reads (and closes) the given stream and returns aBlobthat contains that binary.BlobgetBlob(@NotNull String reference)Get a blob by its reference.@NotNull ContentSessiongetContentSession()Get theContentSessionfrom which this root was acquired@NotNull PermissionProvidergetPermissionProvider()@NotNull QueryEnginegetQueryEngine()Get the query engine.@NotNull org.apache.jackrabbit.oak.core.MutableTreegetTree(@NotNull String path)Retrieve the possible non existingTreeat the given absolutepath.booleanhasPendingChanges()Determine whether there are changes on this treebooleanmove(String sourcePath, String destPath)Move the child located atsourcePathto a child atdestPath.voidrebase()Rebase this root instance to the latest revision.voidrefresh()Reverts all changes made to this root and refreshed to the latest trunk.
-
-
-
Method Detail
-
create
public static SystemRoot create(@NotNull @NotNull NodeStore store, @NotNull @NotNull CommitHook hook, @NotNull @NotNull String workspaceName, @NotNull @NotNull SecurityProvider securityProvider, @NotNull @NotNull QueryIndexProvider indexProvider)
-
create
public static SystemRoot create(@NotNull @NotNull NodeStore store, @NotNull @NotNull CommitHook hook, @NotNull @NotNull String workspaceName, @NotNull @NotNull SecurityProvider securityProvider, @Nullable @Nullable QueryEngineSettings queryEngineSettings, @NotNull @NotNull QueryIndexProvider indexProvider)
-
getContentSession
@NotNull public @NotNull ContentSession getContentSession()
Description copied from interface:RootGet theContentSessionfrom which this root was acquired- Specified by:
getContentSessionin interfaceRoot- Returns:
- the associated ContentSession
-
move
public boolean move(String sourcePath, String destPath)
Description copied from interface:RootMove the child located atsourcePathto a child atdestPath. Both paths must be absolute and resolve to a child located beneath this root.
This method does nothing and returnsfalseif- the tree at
sourcePathdoes not exist or is not accessible, - the parent of the tree at
destinationPathdoes not exist or is not accessible, - a tree already exists at
destinationPath.
destinationPathexists but is not accessible to the editing content session this method succeeds but a subsequentRoot.commit()will detect the violation and fail. - the tree at
-
getTree
@NotNull public @NotNull org.apache.jackrabbit.oak.core.MutableTree getTree(@NotNull @NotNull String path)Description copied from interface:RootRetrieve the possible non existingTreeat the given absolutepath. The path must resolve to a tree in this root.
-
rebase
public void rebase()
Description copied from interface:RootRebase this root instance to the latest revision. After a call to this method, trees obtained throughRoot.getTree(String)may become non existing.
-
refresh
public final void refresh()
Description copied from interface:RootReverts all changes made to this root and refreshed to the latest trunk. After a call to this method, trees obtained throughRoot.getTree(String)may become non existing.
-
commit
public void commit(@NotNull @NotNull Map<String,Object> info) throws CommitFailedExceptionDescription copied from interface:RootAtomically persists all changes made to the tree attached to this root.If
infocontains a mapping forRoot.COMMIT_PATHand the associated value is a string, implementations may throw aCommitFailedExceptionif there are changes outside of the subtree designated by that path and the implementation does not support such partial commits. However all implementation must handler the case where apathdesignates a subtree that contains all unpersisted changes.The
infomap is passed to the underlying storage as a part of the internal commit information attached to this commit. The commit information will be made available to local observers but will not be visible to observers on other cluster nodes.After a successful operation the root is automatically
refreshed, such that trees previously obtained throughRoot.getTree(String)may become non existing.- Specified by:
commitin interfaceRoot- Parameters:
info- commit information- Throws:
CommitFailedException- if the commit failed
-
commit
public void commit() throws CommitFailedExceptionDescription copied from interface:RootAtomically persists all changes made to the tree attached to this root. Calling this method is equivalent to calling theRoot.commit(Map info)method with an empty info map.- Specified by:
commitin interfaceRoot- Throws:
CommitFailedException- if the commit failed
-
hasPendingChanges
public boolean hasPendingChanges()
Description copied from interface:RootDetermine whether there are changes on this tree- Specified by:
hasPendingChangesin interfaceRoot- Returns:
trueiff this tree was modified
-
getQueryEngine
@NotNull public @NotNull QueryEngine getQueryEngine()
Description copied from interface:RootGet the query engine.- Specified by:
getQueryEnginein interfaceRoot- Returns:
- the query engine
-
createBlob
@NotNull public @NotNull Blob createBlob(@NotNull @NotNull InputStream inputStream) throws IOException
Description copied from interface:RootReads (and closes) the given stream and returns aBlobthat contains that binary. The returned blob will remain valid at least until theContentSessionof this root is closed, or longer if it has been committed as a part of a content update.The implementation may decide to persist the blob at any point during or between this method method call and a
Root.commit()that includes the blob, but the blob will become visible to other sessions only after such a commit.- Specified by:
createBlobin interfaceRoot- Parameters:
inputStream- the stream for reading the binary- Returns:
- the blob that was created
- Throws:
IOException- if the stream could not be read
-
getBlob
public Blob getBlob(@NotNull @NotNull String reference)
Description copied from interface:RootGet a blob by its reference.- Specified by:
getBlobin interfaceRoot- Parameters:
reference- reference to the blob- Returns:
- blob or
nullif the reference does not resolve to a blob. - See Also:
Blob.getReference()
-
getPermissionProvider
@NotNull public @NotNull PermissionProvider getPermissionProvider()
- Specified by:
getPermissionProviderin interfacePermissionAware- Returns:
- the
PermissionProviderassociated with the object implementing this interface.
-
-