Class DependencyVersion

  • All Implemented Interfaces:
    java.lang.Comparable<DependencyVersion>, java.lang.Iterable<java.lang.String>

    @NotThreadSafe
    public class DependencyVersion
    extends java.lang.Object
    implements java.lang.Iterable<java.lang.String>, java.lang.Comparable<DependencyVersion>

    Simple object to track the parts of a version number. The parts are contained in a List such that version 1.2.3 will be stored as: versionParts[0] = 1; versionParts[1] = 2; versionParts[2] = 3;

    Note, the parser contained in this class expects the version numbers to be separated by periods. If a different separator is used the parser will likely fail.

    Author:
    Jeremy Long
    • Constructor Summary

      Constructors 
      Constructor Description
      DependencyVersion()
      Constructor for a empty DependencyVersion.
      DependencyVersion​(java.lang.String version)
      Constructor for a DependencyVersion that will parse a version string.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compareTo​(@NotNull DependencyVersion version)  
      boolean equals​(java.lang.Object obj)
      Compares the equality of this object to the one passed in as a parameter.
      java.util.List<java.lang.String> getVersionParts()
      Get the value of versionParts.
      int hashCode()
      Calculates the hashCode for this object.
      @NotNull java.util.Iterator<java.lang.String> iterator()
      Retrieves an iterator for the version parts.
      boolean matchesAtLeastThreeLevels​(DependencyVersion version)
      Determines if the three most major major version parts are identical.
      void parseVersion​(java.lang.String version)
      Parses a version string into its sub parts: major, minor, revision, build, etc.
      void setVersionParts​(java.util.List<java.lang.String> versionParts)
      Set the value of versionParts.
      java.lang.String toString()
      Reconstructs the version string from the split version parts.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Constructor Detail

      • DependencyVersion

        public DependencyVersion()
        Constructor for a empty DependencyVersion.
      • DependencyVersion

        public DependencyVersion​(java.lang.String version)
        Constructor for a DependencyVersion that will parse a version string. Note, this should only be used when the version passed in is already known to be a well formatted version number. Otherwise, DependencyVersionUtil.parseVersion() should be used instead.
        Parameters:
        version - the well formatted version number to parse
    • Method Detail

      • parseVersion

        public final void parseVersion​(java.lang.String version)
        Parses a version string into its sub parts: major, minor, revision, build, etc. Note, this should only be used to parse something that is already known to be a version number.
        Parameters:
        version - the version string to parse
      • getVersionParts

        public java.util.List<java.lang.String> getVersionParts()
        Get the value of versionParts.
        Returns:
        the value of versionParts
      • setVersionParts

        public void setVersionParts​(java.util.List<java.lang.String> versionParts)
        Set the value of versionParts.
        Parameters:
        versionParts - new value of versionParts
      • iterator

        @NotNull
        public @NotNull java.util.Iterator<java.lang.String> iterator()
        Retrieves an iterator for the version parts.
        Specified by:
        iterator in interface java.lang.Iterable<java.lang.String>
        Returns:
        an iterator for the version parts
      • toString

        public java.lang.String toString()
        Reconstructs the version string from the split version parts.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a string representing the version.
      • equals

        public boolean equals​(java.lang.Object obj)
        Compares the equality of this object to the one passed in as a parameter.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the object to compare equality
        Returns:
        returns true only if the two objects are equal, otherwise false
      • hashCode

        public int hashCode()
        Calculates the hashCode for this object.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hashCode
      • matchesAtLeastThreeLevels

        public boolean matchesAtLeastThreeLevels​(DependencyVersion version)
        Determines if the three most major major version parts are identical. For instances, if version 1.2.3.4 was compared to 1.2.3 this function would return true.
        Parameters:
        version - the version number to compare
        Returns:
        true if the first three major parts of the version are identical