Package org.apache.avalon.framework
Class Version
java.lang.Object
org.apache.avalon.framework.Version
- All Implemented Interfaces:
Serializable,Comparable
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
ConstructorsConstructorDescriptionVersion(int major, int minor, int micro) Create a new instance of aVersionobject with the specified version numbers. -
Method Summary
Modifier and TypeMethodDescriptionintCompare two versions together according to theComparableinterface.booleanCheck thisVersionagainst another for compliancy (compatibility).booleanIndicates whether some other object is "equal to" thisVersion.booleanCheck thisVersionagainst another for equality.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.toString()Overload toString to report version correctly.
-
Constructor Details
-
Version
public Version(int major, int minor, int micro) Create a new instance of aVersionobject with the specified version numbers.- Parameters:
major- ThisVersionmajor number.minor- ThisVersionminor number.micro- ThisVersionmicro 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 occursIllegalArgumentException- if an error occursNullPointerException- if the provided string isnull- 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
Check thisVersionagainst another for equality. If thisVersionis compatible with the specified one, then true is returned, otherwise false.- Parameters:
other- The otherVersionobject to be compared with this for equality.- Returns:
- true if this
Versionis compatible with the specified one - Since:
- 4.1
-
equals
Indicates whether some other object is "equal to" thisVersion. Returns true if the other object is an instance ofVersionand has the same major, minor, and micro components. -
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. -
complies
Check thisVersionagainst another for compliancy (compatibility). If thisVersionis 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 otherVersionobject to be compared with this for compliancy (compatibility).- Returns:
- true if this
Versionis compatible with the specified one
-
toString
Overload toString to report version correctly. -
compareTo
Compare two versions together according to theComparableinterface.- Specified by:
compareToin interfaceComparable- Returns:
- number indicating relative value (-1, 0, 1)
-