Class VersionHistoryImpl

    • Constructor Detail

      • VersionHistoryImpl

        public VersionHistoryImpl​(Version rootVersion,
                                  Comparator<Version> versionComparatorDesc)
        Constructor, ensures the root version is set.
        Parameters:
        rootVersion - the root version, can not be null.
        versionComparatorDesc - optional comparator of versions.
    • Method Detail

      • getRootVersion

        public Version getRootVersion()
        Gets the root (initial / least recent) version of the version history.
        Specified by:
        getRootVersion in interface VersionHistory
        Returns:
        the root version
      • getHeadVersion

        public Version getHeadVersion()
        Gets the head (current / most recent) version of the version history.
        Specified by:
        getHeadVersion in interface VersionHistory
        Returns:
        the head version
      • getAllVersions

        public Collection<Version> getAllVersions()
        Gets a collection containing all the versions within the version history.

        Versions are returned in descending create date order (most recent first).

        Specified by:
        getAllVersions in interface VersionHistory
        Returns:
        collection containing all the versions
      • getPredecessor

        public Version getPredecessor​(Version version)
        Gets the predecessor of a specified version
        Specified by:
        getPredecessor in interface VersionHistory
        Parameters:
        version - the version object
        Returns:
        the predeceeding version, null if root version
      • getSuccessors

        public Collection<Version> getSuccessors​(Version version)
        Gets the succeeding versions of a specified version. If there are multiple Versions they are sorted into descending create date order (most recent first).
        Specified by:
        getSuccessors in interface VersionHistory
        Parameters:
        version - the version object
        Returns:
        a collection containing the succeeding version, empty is none
      • getVersion

        public Version getVersion​(String versionLabel)
        Gets a version with a specified version label. The version label is guaranteed unique within the version history.
        Specified by:
        getVersion in interface VersionHistory
        Parameters:
        versionLabel - the version label
        Returns:
        the version object
        Throws:
        VersionDoesNotExistException - indicates requested version does not exist
      • addVersion

        public void addVersion​(Version version,
                               Version predecessor)
        Add a version to the version history, in the order they were created.

        Used internally to build the version history tree.

        Parameters:
        version - the version object
        predecessor - the preceeding version