public interface Root
Root
instance serves as a container for a Tree
. It is
obtained from a ContentSession
, which governs accessibility and
visibility of the Tree
and its sub trees.
All root instances created by a content session become invalid after the
content session is closed. Any method called on an invalid root instance
will throw an InvalidStateException
.
Tree
instances may become non existing after a call to
refresh()
, rebase()
or commit()
.
Any write access to non existing Tree
instances will cause an
InvalidStateException
.
Existence and iterability of trees
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
COMMIT_PATH
Name of the entry of the commit path in the
info
map in commit(java.util.Map) |
Modifier and Type | Method and Description |
---|---|
void |
commit()
Atomically persists all changes made to the tree attached to this root.
|
void |
commit(java.util.Map<java.lang.String,java.lang.Object> info)
Atomically persists all changes made to the tree attached to this root.
|
Blob |
createBlob(java.io.InputStream stream)
Reads (and closes) the given stream and returns a
Blob that
contains that binary. |
Blob |
getBlob(java.lang.String reference)
Get a blob by its reference.
|
ContentSession |
getContentSession()
Get the
ContentSession from which this root was acquired |
QueryEngine |
getQueryEngine()
Get the query engine.
|
Tree |
getTree(java.lang.String path)
Retrieve the possible non existing
Tree at the given absolute path . |
boolean |
hasPendingChanges()
Determine whether there are changes on this tree
|
boolean |
move(java.lang.String sourcePath,
java.lang.String destPath)
Move the child located at
sourcePath to a child at destPath . |
void |
rebase()
Rebase this root instance to the latest revision.
|
void |
refresh()
Reverts all changes made to this root and refreshed to the latest trunk.
|
static final java.lang.String COMMIT_PATH
info
map in commit(java.util.Map)
boolean move(java.lang.String sourcePath, java.lang.String destPath)
sourcePath
to a child at destPath
.
Both paths must be absolute and resolve to a child located beneath this
root.false
if
sourcePath
does not exist or is not accessible,destinationPath
does not exist or is not accessible,destinationPath
.destinationPath
exists but is not accessible to the
editing content session this method succeeds but a subsequent
commit()
will detect the violation and fail.sourcePath
- The source pathdestPath
- The destination pathtrue
on success, false
otherwise.Tree getTree(java.lang.String path)
Tree
at the given absolute path
.
The path must resolve to a tree in this root.path
- absolute path to the treevoid rebase()
getTree(String)
may become non existing.void refresh()
getTree(String)
may become non existing.void commit(java.util.Map<java.lang.String,java.lang.Object> info) throws CommitFailedException
If info
contains a mapping for COMMIT_PATH
and the
associated value is a string, implementations may throw a
CommitFailedException
if 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 a path
designates a subtree that contains all
unpersisted changes.
The info
map 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
through getTree(String)
may become non existing.
info
- commit informationCommitFailedException
- if the commit failedvoid commit() throws CommitFailedException
commit(Map info)
method with an empty info map.CommitFailedException
- if the commit failedboolean hasPendingChanges()
true
iff this tree was modifiedQueryEngine getQueryEngine()
Blob createBlob(java.io.InputStream stream) throws java.io.IOException
Blob
that
contains that binary. The returned blob will remain valid at least
until the ContentSession
of 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 commit()
that includes the blob, but the blob will become visible to other
sessions only after such a commit.
stream
- the stream for reading the binaryjava.io.IOException
- if the stream could not be readBlob getBlob(java.lang.String reference)
reference
- reference to the blobnull
if the reference does not resolve to a blob.Blob.getReference()
ContentSession getContentSession()
ContentSession
from which this root was acquiredjava.lang.UnsupportedOperationException
"Copyright © 2010 - 2020 Adobe Systems Incorporated. All Rights Reserved"