org.apache.avalon.framework

Class Version

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:

Version: $Id: Version.java 30977 2004-07-30 03:57:54 -0500 (Fri, 30 Jul 2004) niclas $

Author: Avalon Development Team

Field Summary
intm_major
intm_micro
intm_minor
Constructor Summary
Version(int major, int minor, int micro)
Create a new instance of a Version object with the specified version numbers.
Method Summary
intcompareTo(Object o)
Compare two versions together according to the Comparable interface.
booleancomplies(Version other)
Check this Version against another for compliancy (compatibility).
booleanequals(Version other)
Check this Version against another for equality.
booleanequals(Object other)
Indicates whether some other object is "equal to" this Version.
intgetMajor()
Retrieve major component of version.
intgetMicro()
Retrieve micro component of version.
intgetMinor()
Retrieve minor component of version.
static VersiongetVersion(String version)
Parse a version out of a string.
inthashCode()
Add a hashing function to ensure the Version object is treated as expected in hashmaps and sets.
StringtoString()
Overload toString to report version correctly.

Field Detail

m_major

private int m_major

m_micro

private int m_micro

m_minor

private int m_minor

Constructor Detail

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 Detail

compareTo

public int compareTo(Object o)
Compare two versions together according to the Comparable interface.

Returns: number indicating relative value (-1, 0, 1)

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

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.

Parameters: other an Object value

Returns: true if the other object is equal to this Version

getMajor

public int getMajor()
Retrieve major component of version.

Returns: the major component of version

Since: 4.1

getMicro

public int getMicro()
Retrieve micro component of version.

Returns: the micro component of version.

Since: 4.1

getMinor

public int getMinor()
Retrieve minor component of version.

Returns: the minor component of version

Since: 4.1

getVersion

public static Version getVersion(String version)
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

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.

Returns: the hashCode

toString

public String toString()
Overload toString to report version correctly.

Returns: the dot seperated version string