Class ReadOnlyVersionManager

  • Direct Known Subclasses:
    ReadWriteVersionManager

    public abstract class ReadOnlyVersionManager
    extends java.lang.Object
    ReadOnlyVersionManager provides implementations for read-only version operations modeled after the ones available in VersionManager.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      @Nullable Tree getBaseVersion​(@NotNull Tree versionable)
      Returns the tree representing the base version of the given versionable tree or null if none exists yet.
      static @NotNull ReadOnlyVersionManager getInstance​(Root root, NamePathMapper namePathMapper)
      Return a new instance of ReadOnlyVersionManager that reads version information from the tree at VersionConstants.VERSION_STORE_PATH.
      @Nullable Tree getVersion​(@NotNull java.lang.String uuid)
      Returns the version tree with the given uuid.
      @Nullable Tree getVersionable​(@NotNull Tree versionTree, @NotNull java.lang.String workspaceName)
      Tries to retrieve the tree corresponding to specified versionTree outside of the version storage based on versionable path information stored with the version history.
      @Nullable Tree getVersionHistory​(@NotNull Tree versionable)
      Returns the tree representing the version history of the given versionable tree or null if none exists yet.
      @NotNull java.lang.String getVersionHistoryPath​(@NotNull java.lang.String uuid)
      Returns the path of the version history for the given uuid.
      boolean isCheckedOut​(@NotNull Tree tree)
      Returns true if the tree is checked out; otherwise false.
      static boolean isVersionStoreTree​(@NotNull Tree tree)
      Returns true if the specified tree has VersionConstants.REP_VERSIONSTORAGE defines as primary node type i.e.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ReadOnlyVersionManager

        public ReadOnlyVersionManager()
    • Method Detail

      • getInstance

        @NotNull
        public static @NotNull ReadOnlyVersionManager getInstance​(Root root,
                                                                  NamePathMapper namePathMapper)
        Return a new instance of ReadOnlyVersionManager that reads version information from the tree at VersionConstants.VERSION_STORE_PATH.
        Parameters:
        root - The root to read version information from.
        namePathMapper - The NamePathMapper to use.
        Returns:
        a new instance of ReadOnlyVersionManager.
      • isCheckedOut

        public boolean isCheckedOut​(@NotNull
                                    @NotNull Tree tree)
        Returns true if the tree is checked out; otherwise false. The root node is always considered checked out.
        Parameters:
        tree - the tree to check.
        Returns:
        whether the tree is checked out or not.
      • 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 null if 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 given uuid. The returned path is relative to the version storage tree as returned by getVersionStorage().
        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 or null if 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)
        Returns true if the specified tree has VersionConstants.REP_VERSIONSTORAGE defines 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:
        true if the target node has VersionConstants.REP_VERSIONSTORAGE defines as primary node type; false otherwise.
      • getVersionable

        @Nullable
        public @Nullable Tree getVersionable​(@NotNull
                                             @NotNull Tree versionTree,
                                             @NotNull
                                             @NotNull java.lang.String workspaceName)
        Tries to retrieve the tree corresponding to specified versionTree outside 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 null is 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, null will be returned.
        Please note that this method will not verify if the tree at the versionable path or the computed subtree actually exists. This must be asserted by the caller before operating on the tree.
        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 null if 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