Class Version

java.lang.Object
org.apache.avalon.framework.Version
All Implemented Interfaces:
Serializable, Comparable

public final class Version extends Object implements Comparable, Serializable
This class is used to hold version information pertaining to a Component or interface.

The version number of a Component is made up of three dot-separated fields:

"major.minor.micro"

The major, minor and micro fields are integer numbers represented in decimal notation and have the following meaning:

  • major - When the major version changes (in ex. from "1.5.12" to "2.0.0"), then backward compatibility with previous releases is not granted.
  • minor - When the minor version changes (in ex. from "1.5.12" to "1.6.0"), then backward compatibility with previous releases is granted, but something changed in the implementation of the Component. (ie it methods could have been added)
  • micro - When the micro version changes (in ex. from "1.5.12" to "1.5.13"), then the the changes are small forward compatible bug fixes or documentation modifications etc.
Version:
CVS $Revision: 1.33 $ $Date: 2004/02/11 14:34:24 $
Author:
Avalon Development Team
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    Version(int major, int minor, int micro)
    Create a new instance of a Version object with the specified version numbers.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Compare two versions together according to the Comparable interface.
    boolean
    Check this Version against another for compliancy (compatibility).
    boolean
    equals(Object other)
    Indicates whether some other object is "equal to" this Version.
    boolean
    equals(Version other)
    Check this Version against another for equality.
    int
    Retrieve major component of version.
    int
    Retrieve micro component of version.
    int
    Retrieve minor component of version.
    static Version
    getVersion(String version)
    Parse a version out of a string.
    int
    Add a hashing function to ensure the Version object is treated as expected in hashmaps and sets.
    Overload toString to report version correctly.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Version

      public Version(int major, int minor, int micro)
      Create a new instance of a Version object with the specified version numbers.
      Parameters:
      major - This Version major number.
      minor - This Version minor number.
      micro - This Version micro number.
  • Method Details

    • getVersion

      public static Version getVersion(String version) throws NumberFormatException, IllegalArgumentException
      Parse a version out of a string. The version string format is .. where both minor and micro are optional.
      Parameters:
      version - The input version string
      Returns:
      the new Version object
      Throws:
      NumberFormatException - if an error occurs
      IllegalArgumentException - if an error occurs
      NullPointerException - if the provided string is null
      Since:
      4.1
    • getMajor

      public int getMajor()
      Retrieve major component of version.
      Returns:
      the major component of version
      Since:
      4.1
    • getMinor

      public int getMinor()
      Retrieve minor component of version.
      Returns:
      the minor component of version
      Since:
      4.1
    • getMicro

      public int getMicro()
      Retrieve micro component of version.
      Returns:
      the micro component of version.
      Since:
      4.1
    • equals

      public boolean equals(Version other)
      Check this Version against another for equality.

      If this Version is compatible with the specified one, then true is returned, otherwise false.

      Parameters:
      other - The other Version object to be compared with this for equality.
      Returns:
      true if this Version is compatible with the specified one
      Since:
      4.1
    • equals

      public boolean equals(Object other)
      Indicates whether some other object is "equal to" this Version. Returns true if the other object is an instance of Version and has the same major, minor, and micro components.
      Overrides:
      equals in class Object
      Parameters:
      other - an Object value
      Returns:
      true if the other object is equal to this Version
    • hashCode

      public int hashCode()
      Add a hashing function to ensure the Version object is treated as expected in hashmaps and sets. NOTE: any time the equals() is overridden, hashCode() should also be overridden.
      Overrides:
      hashCode in class Object
      Returns:
      the hashCode
    • complies

      public boolean complies(Version other)
      Check this Version against another for compliancy (compatibility).

      If this Version is compatible with the specified one, then true is returned, otherwise false. Be careful when using this method since, in example, version 1.3.7 is compliant to version 1.3.6, while the opposite is not.

      The following example displays the expected behaviour and results of version.

       final Version v1 = new Version( 1, 3 , 6 );
       final Version v2 = new Version( 1, 3 , 7 );
       final Version v3 = new Version( 1, 4 , 0 );
       final Version v4 = new Version( 2, 0 , 1 );
      
       assert(   v1.complies( v1 ) );
       assert( ! v1.complies( v2 ) );
       assert(   v2.complies( v1 ) );
       assert( ! v1.complies( v3 ) );
       assert(   v3.complies( v1 ) );
       assert( ! v1.complies( v4 ) );
       assert( ! v4.complies( v1 ) );
       
      Parameters:
      other - The other Version object to be compared with this for compliancy (compatibility).
      Returns:
      true if this Version is compatible with the specified one
    • toString

      public String toString()
      Overload toString to report version correctly.
      Overrides:
      toString in class Object
      Returns:
      the dot seperated version string
    • compareTo

      public int compareTo(Object o)
      Compare two versions together according to the Comparable interface.
      Specified by:
      compareTo in interface Comparable
      Returns:
      number indicating relative value (-1, 0, 1)