Package aQute.bnd.version.maven
Class ComparableVersion
- java.lang.Object
-
- aQute.bnd.version.maven.ComparableVersion
-
- All Implemented Interfaces:
java.lang.Comparable<ComparableVersion>
public class ComparableVersion extends java.lang.Object implements java.lang.Comparable<ComparableVersion>
Generic implementation of version comparison.
Features:- mixing of '
-
' (hyphen) and '.
' (dot) separators, - transition between characters and digits also constitutes a separator:
1.0alpha1 => [1, 0, alpha, 1]
- unlimited number of version components,
- version components in the text can be digits or strings,
- strings are checked for well-known qualifiers and the qualifier ordering
is used for version ordering. Well-known qualifiers (case insensitive) are:
alpha
ora
beta
orb
milestone
orm
rc
orcr
snapshot
(the empty string)
orga
orfinal
sp
- a hyphen usually precedes a qualifier, and is always less important than something preceded with a dot.
- See Also:
- "Versioning" on Maven Wiki
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ComparableVersion.BigIntegerItem
Represents a numeric item in the version item list.private static class
ComparableVersion.IntItem
Represents a numeric item in the version item list that can be represented with an int.private static interface
ComparableVersion.Item
private static class
ComparableVersion.ListItem
Represents a version list item.private static class
ComparableVersion.LongItem
Represents a numeric item in the version item list that can be represented with a long.private static class
ComparableVersion.StringItem
Represents a string in the version item list, usually a qualifier.
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
canonical
private ComparableVersion.ListItem
items
private static int
MAX_INTITEM_LENGTH
private static int
MAX_LONGITEM_LENGTH
private java.lang.String
value
-
Constructor Summary
Constructors Constructor Description ComparableVersion(java.lang.String version)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(ComparableVersion o)
boolean
equals(java.lang.Object o)
java.lang.String
getCanonical()
int
hashCode()
private static ComparableVersion.Item
parseItem(boolean isDigit, java.lang.String buf)
void
parseVersion(java.lang.String version)
private static java.lang.String
stripLeadingZeroes(java.lang.String buf)
java.lang.String
toString()
-
-
-
Field Detail
-
MAX_INTITEM_LENGTH
private static final int MAX_INTITEM_LENGTH
- See Also:
- Constant Field Values
-
MAX_LONGITEM_LENGTH
private static final int MAX_LONGITEM_LENGTH
- See Also:
- Constant Field Values
-
value
private java.lang.String value
-
canonical
private java.lang.String canonical
-
items
private ComparableVersion.ListItem items
-
-
Method Detail
-
parseVersion
public final void parseVersion(java.lang.String version)
-
parseItem
private static ComparableVersion.Item parseItem(boolean isDigit, java.lang.String buf)
-
stripLeadingZeroes
private static java.lang.String stripLeadingZeroes(java.lang.String buf)
-
compareTo
public int compareTo(ComparableVersion o)
- Specified by:
compareTo
in interfacejava.lang.Comparable<ComparableVersion>
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getCanonical
public java.lang.String getCanonical()
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-