Class ReadOnlyVersionManager
- java.lang.Object
-
- org.apache.jackrabbit.oak.plugins.version.ReadOnlyVersionManager
-
- Direct Known Subclasses:
ReadWriteVersionManager
public abstract class ReadOnlyVersionManager extends java.lang.ObjectReadOnlyVersionManagerprovides implementations for read-only version operations modeled after the ones available inVersionManager.
-
-
Constructor Summary
Constructors Constructor Description ReadOnlyVersionManager()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description @Nullable TreegetBaseVersion(@NotNull Tree versionable)Returns the tree representing the base version of the given versionable tree ornullif none exists yet.static @NotNull ReadOnlyVersionManagergetInstance(Root root, NamePathMapper namePathMapper)Return a new instance ofReadOnlyVersionManagerthat reads version information from the tree atVersionConstants.VERSION_STORE_PATH.@Nullable TreegetVersion(@NotNull java.lang.String uuid)Returns the version tree with the given uuid.@Nullable TreegetVersionable(@NotNull Tree versionTree, @NotNull java.lang.String workspaceName)Tries to retrieve the tree corresponding to specifiedversionTreeoutside of the version storage based on versionable path information stored with the version history.@Nullable TreegetVersionHistory(@NotNull Tree versionable)Returns the tree representing the version history of the given versionable tree ornullif none exists yet.@NotNull java.lang.StringgetVersionHistoryPath(@NotNull java.lang.String uuid)Returns the path of the version history for the givenuuid.booleanisCheckedOut(@NotNull Tree tree)Returnstrueif the tree is checked out; otherwisefalse.static booleanisVersionStoreTree(@NotNull Tree tree)Returnstrueif the specified tree hasVersionConstants.REP_VERSIONSTORAGEdefines as primary node type i.e.
-
-
-
Method Detail
-
getInstance
@NotNull public static @NotNull ReadOnlyVersionManager getInstance(Root root, NamePathMapper namePathMapper)
Return a new instance ofReadOnlyVersionManagerthat reads version information from the tree atVersionConstants.VERSION_STORE_PATH.- Parameters:
root- The root to read version information from.namePathMapper- TheNamePathMapperto use.- Returns:
- a new instance of
ReadOnlyVersionManager.
-
isCheckedOut
public boolean isCheckedOut(@NotNull @NotNull Tree tree)Returnstrueif the tree is checked out; otherwisefalse. The root node is always considered checked out.- Parameters:
tree- the tree to check.- Returns:
- whether the tree is checked out or not.
-
getVersionHistory
@Nullable public @Nullable Tree getVersionHistory(@NotNull @NotNull Tree versionable) throws UnsupportedRepositoryOperationException, RepositoryException
Returns the tree representing the version history of the given versionable tree ornullif none exists yet.- Parameters:
versionable- the versionable tree.- Returns:
- the version history or
nullif none exists yet. - Throws:
UnsupportedRepositoryOperationException- if the versionable tree is not actually versionable.RepositoryException- if an error occurs while checking the node type of the tree.
-
getVersion
@Nullable public @Nullable Tree getVersion(@NotNull @NotNull java.lang.String uuid)
Returns the version tree with the given uuid.- Parameters:
uuid- the uuid of the version tree.- Returns:
- the version tree or
nullif there is none.
-
getVersionHistoryPath
@NotNull public @NotNull java.lang.String getVersionHistoryPath(@NotNull @NotNull java.lang.String uuid)Returns the path of the version history for the givenuuid. The returned path is relative to the version storage tree as returned bygetVersionStorage().- Parameters:
uuid- the uuid of the versionable node- Returns:
- the relative path of the version history for the given uuid.
-
getBaseVersion
@Nullable public @Nullable Tree getBaseVersion(@NotNull @NotNull Tree versionable) throws UnsupportedRepositoryOperationException, RepositoryException
Returns the tree representing the base version of the given versionable tree ornullif none exists yet. This is the case when a versionable node is created, but is not yet saved.- Parameters:
versionable- the versionable tree.- Returns:
- the tree representing the base version or
null. - Throws:
UnsupportedRepositoryOperationException- if the versionable tree is not actually versionable.RepositoryException- if an error occurs while checking the node type of the tree.
-
isVersionStoreTree
public static boolean isVersionStoreTree(@NotNull @NotNull Tree tree)Returnstrueif the specified tree hasVersionConstants.REP_VERSIONSTORAGEdefines as primary node type i.e. is part of the intermediate version storage structure that contains the version histories and the versions.- Parameters:
tree- The tree to be tested.- Returns:
trueif the target node hasVersionConstants.REP_VERSIONSTORAGEdefines as primary node type;falseotherwise.
-
getVersionable
@Nullable public @Nullable Tree getVersionable(@NotNull @NotNull Tree versionTree, @NotNull @NotNull java.lang.String workspaceName)
Tries to retrieve the tree corresponding to specifiedversionTreeoutside of the version storage based on versionable path information stored with the version history. The following cases are distinguished:- Version History: If the given tree is a version history the
associated versionable tree in the specified workspace is being returned
based on the information stored in the versionable path property. If
no versionable path property is present
nullis returned. - Version: Same as for version history.
- Version Labels: Same as for version history.
- Frozen Node: If the given tree forms part of a frozen node the path of the target node is computed from the versionable path and the relative path of the frozen node.
- Other Nodes: If the specified tree is not part of the tree structure
defined by a version history,
nullwill be returned.
- Parameters:
versionTree- The tree from within the version storage for which that versionable correspondent should be retrieved.workspaceName- The name of the workspace for which the target should be retrieved.- Returns:
- A existing or non-existing tree pointing to the location of the
correspondent tree outside of the version storage or
nullif the versionable path property for the specified workspace is missing or if the given tree is not located within the tree structure defined by a version history. - See Also:
VersionConstants.MIX_REP_VERSIONABLE_PATHS
- Version History: If the given tree is a version history the
associated versionable tree in the specified workspace is being returned
based on the information stored in the versionable path property. If
no versionable path property is present
-
-