Class VersionHistoryImpl

  • All Implemented Interfaces:
    java.io.Serializable, VersionHistory

    public class VersionHistoryImpl
    extends java.lang.Object
    implements VersionHistory
    Version History implementation.
    Author:
    Roy Wetherall
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      VersionHistoryImpl​(Version rootVersion, java.util.Comparator<Version> versionComparatorDesc)
      Constructor, ensures the root version is set.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addVersion​(Version version, Version predecessor)
      Add a version to the version history, in the order they were created.
      java.util.Collection<Version> getAllVersions()
      Gets a collection containing all the versions within the version history.
      Version getHeadVersion()
      Gets the head (current / most recent) version of the version history.
      Version getPredecessor​(Version version)
      Gets the predecessor of a specified version
      Version getRootVersion()
      Gets the root (initial / least recent) version of the version history.
      java.util.Collection<Version> getSuccessors​(Version version)
      Gets the succeeding versions of a specified version.
      Version getVersion​(java.lang.String versionLabel)
      Gets a version with a specified version label.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • VersionHistoryImpl

        public VersionHistoryImpl​(Version rootVersion,
                                  java.util.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 java.util.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 java.util.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​(java.lang.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
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        Since:
        4.1.7