Package com.github.zafarkhaja.semver
Class Version
java.lang.Object
com.github.zafarkhaja.semver.Version
- All Implemented Interfaces:
Comparable<Version>
The
Version
class is the main class of the Java SemVer library.
This class implements the Facade design pattern.
It is also immutable, which makes the class thread-safe.- Since:
- 0.1.0
- Author:
- Zafar Khaja invalid input: '<'zafarkhaja@gmail.com>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
A mutable builder for the immutableVersion
class. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Comparator
<Version> A comparator that respects the build metadata when comparing versions. -
Method Summary
Modifier and TypeMethodDescriptionint
Compares this version to the other version.int
compareWithBuildsTo
(Version other) Compare this version to the other version taking into account the build metadata.boolean
Checks if this version equals the other version.static Version
forIntegers
(int major) Creates a new instance ofVersion
for the specified version numbers.static Version
forIntegers
(int major, int minor) Creates a new instance ofVersion
for the specified version numbers.static Version
forIntegers
(int major, int minor, int patch) Creates a new instance ofVersion
for the specified version numbers.Returns the string representation of the build metadata.int
Returns the major version number.int
Returns the minor version number.Returns the string representation of the normal version.int
Returns the patch version number.Returns the string representation of the pre-release version.boolean
greaterThan
(Version other) Checks if this version is greater than the other version.boolean
greaterThanOrEqualTo
(Version other) Checks if this version is greater than or equal to the other version.int
hashCode()
Increments the build metadata.Increments the major version.incrementMajorVersion
(String preRelease) Increments the major version and appends the pre-release version.Increments the minor version.incrementMinorVersion
(String preRelease) Increments the minor version and appends the pre-release version.Increments the patch version.incrementPatchVersion
(String preRelease) Increments the patch version and appends the pre-release version.Increments the pre-release version.boolean
Checks if this version is less than the other version.boolean
lessThanOrEqualTo
(Version other) Checks if this version is less than or equal to the other version.boolean
satisfies
(Expression expr) Checks if this version satisfies the specified SemVer Expression.boolean
Checks if this version satisfies the specified SemVer Expression string.setBuildMetadata
(String build) Sets the build metadata.setPreReleaseVersion
(String preRelease) Sets the pre-release version.toString()
static Version
Creates a new instance ofVersion
as a result of parsing the specified version string.
-
Field Details
-
BUILD_AWARE_ORDER
A comparator that respects the build metadata when comparing versions.
-
-
Method Details
-
valueOf
Creates a new instance ofVersion
as a result of parsing the specified version string.- Parameters:
version
- the version string to parse- Returns:
- a new instance of the
Version
class - Throws:
IllegalArgumentException
- if the input string isNULL
or emptyParseException
- when invalid version string is providedUnexpectedCharacterException
- is a special case ofParseException
-
forIntegers
Creates a new instance ofVersion
for the specified version numbers.- Parameters:
major
- the major version number- Returns:
- a new instance of the
Version
class - Throws:
IllegalArgumentException
- if a negative integer is passed- Since:
- 0.7.0
-
forIntegers
Creates a new instance ofVersion
for the specified version numbers.- Parameters:
major
- the major version numberminor
- the minor version number- Returns:
- a new instance of the
Version
class - Throws:
IllegalArgumentException
- if a negative integer is passed- Since:
- 0.7.0
-
forIntegers
Creates a new instance ofVersion
for the specified version numbers.- Parameters:
major
- the major version numberminor
- the minor version numberpatch
- the patch version number- Returns:
- a new instance of the
Version
class - Throws:
IllegalArgumentException
- if a negative integer is passed- Since:
- 0.7.0
-
satisfies
Checks if this version satisfies the specified SemVer Expression string. This method is a part of the SemVer Expressions API.- Parameters:
expr
- the SemVer Expression string- Returns:
true
if this version satisfies the specified SemVer Expression orfalse
otherwise- Throws:
ParseException
- in case of a general parse errorLexerException
- when encounters an illegal characterUnexpectedTokenException
- when comes across an unexpected token- Since:
- 0.7.0
-
satisfies
Checks if this version satisfies the specified SemVer Expression. This method is a part of the SemVer Expressions API.- Parameters:
expr
- the SemVer Expression- Returns:
true
if this version satisfies the specified SemVer Expression orfalse
otherwise- Since:
- 0.9.0
-
incrementMajorVersion
Increments the major version.- Returns:
- a new instance of the
Version
class
-
incrementMajorVersion
Increments the major version and appends the pre-release version.- Parameters:
preRelease
- the pre-release version to append- Returns:
- a new instance of the
Version
class - Throws:
IllegalArgumentException
- if the input string isNULL
or emptyParseException
- when invalid version string is providedUnexpectedCharacterException
- is a special case ofParseException
-
incrementMinorVersion
Increments the minor version.- Returns:
- a new instance of the
Version
class
-
incrementMinorVersion
Increments the minor version and appends the pre-release version.- Parameters:
preRelease
- the pre-release version to append- Returns:
- a new instance of the
Version
class - Throws:
IllegalArgumentException
- if the input string isNULL
or emptyParseException
- when invalid version string is providedUnexpectedCharacterException
- is a special case ofParseException
-
incrementPatchVersion
Increments the patch version.- Returns:
- a new instance of the
Version
class
-
incrementPatchVersion
Increments the patch version and appends the pre-release version.- Parameters:
preRelease
- the pre-release version to append- Returns:
- a new instance of the
Version
class - Throws:
IllegalArgumentException
- if the input string isNULL
or emptyParseException
- when invalid version string is providedUnexpectedCharacterException
- is a special case ofParseException
-
incrementPreReleaseVersion
Increments the pre-release version.- Returns:
- a new instance of the
Version
class
-
incrementBuildMetadata
Increments the build metadata.- Returns:
- a new instance of the
Version
class
-
setPreReleaseVersion
Sets the pre-release version.- Parameters:
preRelease
- the pre-release version to set- Returns:
- a new instance of the
Version
class - Throws:
IllegalArgumentException
- if the input string isNULL
or emptyParseException
- when invalid version string is providedUnexpectedCharacterException
- is a special case ofParseException
-
setBuildMetadata
Sets the build metadata.- Parameters:
build
- the build metadata to set- Returns:
- a new instance of the
Version
class - Throws:
IllegalArgumentException
- if the input string isNULL
or emptyParseException
- when invalid version string is providedUnexpectedCharacterException
- is a special case ofParseException
-
getMajorVersion
public int getMajorVersion()Returns the major version number.- Returns:
- the major version number
-
getMinorVersion
public int getMinorVersion()Returns the minor version number.- Returns:
- the minor version number
-
getPatchVersion
public int getPatchVersion()Returns the patch version number.- Returns:
- the patch version number
-
getNormalVersion
Returns the string representation of the normal version.- Returns:
- the string representation of the normal version
-
getPreReleaseVersion
Returns the string representation of the pre-release version.- Returns:
- the string representation of the pre-release version
-
getBuildMetadata
Returns the string representation of the build metadata.- Returns:
- the string representation of the build metadata
-
greaterThan
Checks if this version is greater than the other version.- Parameters:
other
- the other version to compare to- Returns:
true
if this version is greater than the other version orfalse
otherwise- See Also:
-
greaterThanOrEqualTo
Checks if this version is greater than or equal to the other version.- Parameters:
other
- the other version to compare to- Returns:
true
if this version is greater than or equal to the other version orfalse
otherwise- See Also:
-
lessThan
Checks if this version is less than the other version.- Parameters:
other
- the other version to compare to- Returns:
true
if this version is less than the other version orfalse
otherwise- See Also:
-
lessThanOrEqualTo
Checks if this version is less than or equal to the other version.- Parameters:
other
- the other version to compare to- Returns:
true
if this version is less than or equal to the other version orfalse
otherwise- See Also:
-
equals
Checks if this version equals the other version. The comparison is done by theVersion.compareTo
method. -
hashCode
public int hashCode() -
toString
-
compareTo
Compares this version to the other version. This method does not take into account the versions' build metadata. If you want to compare the versions' build metadata use theVersion.compareWithBuildsTo
method or theVersion.BUILD_AWARE_ORDER
comparator.- Specified by:
compareTo
in interfaceComparable<Version>
- Parameters:
other
- the other version to compare to- Returns:
- a negative integer, zero or a positive integer if this version is less than, equal to or greater the the specified version
- See Also:
-
compareWithBuildsTo
Compare this version to the other version taking into account the build metadata. The method makes use of theVersion.BUILD_AWARE_ORDER
comparator.- Parameters:
other
- the other version to compare to- Returns:
- integer result of comparison compatible with
that of the
Comparable.compareTo
method - See Also:
-