Package org.nuiton.version
Class SemVer
- java.lang.Object
-
- org.nuiton.version.SemVer
-
- All Implemented Interfaces:
Comparable<SemVer>
public class SemVer extends Object implements Comparable<SemVer>
Implantation de http://semver.org/. Cette objet est immutable, Il faut utilisergetCreator()
pour modifier un de ses elements Quelques changement par rapport au site:- le numero de version peut avoir entre 1 et N element, et non pas 3 obligatoirement
- on peut avoir un -SNAPSHOT ajoute en toute fin de la version
- version: 1 à N composant numerique, les 3 premiers sont nomme
- major
- minor
- patch
- prerelease: 0 à N composant alphanumerique, le prefix est '-'
- build: 0 à N composant alphanumerique, le prefix est '+'
- SNAPSHOT: 0 ou 1 composant dont le nom est fixe le prefix est '-'
- SemVer.creator(1,2,3).done() → "1.2.3"
- SemVer.creator("1.2.3","rc2").done() → "1.2.3-rc2"
- SemVer.creator().setVersion(2.3.4).setBuild("r223").done() → "2.3.4+r223"
- SemVer.creator().setVersion(2.3.4).setSnapshot(true).done() → "2.3.4-SNAPSHOT"
- SemVer.creator(new SemVer("1.2.3")).incMajor().done() → "2.2.2"
- new SemVer("1.2.3").getCreator().incMinor().setPrerelease(beta).done() → "1.3.3-beta"
- Since:
- 1.0
- Author:
- Benjamin Poussin - poussin@codelutin.com
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SemVer.SemVerCreator
Construit un objet version, la verification de la coherence est faite lors de l'appel du create.
-
Field Summary
Fields Modifier and Type Field Description protected String
build
static String
BUILD_SEPARATOR
Separateur utiliser devant l'element buildstatic String
PATTERN_BUILD
pattern pour une partir de l'element buildstatic String
PATTERN_PRERELEASE
pattern pour une partie de l'element prereleasestatic String
PATTERN_VERSION
pattern pour une partie de l'element versionprotected String
prerelease
static String
PRERELEASE_SEPARATOR
Seperateur entre la version et l'element prereleasestatic String
SERIES_SEPARATOR
Separateur utiliser entre chaque element d'une partieprotected String
snapshot
static String
SNAPSHOT
la chaine de caractere representant le SNAPSHOTstatic String
SNAPSHOT_SEPARATOR
Separateur de SNAPSHOTprotected String
version
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
after(SemVer o)
boolean
before(SemVer o)
protected int
compare(String a, String b, boolean nullIsHigh)
Compare deux elements de meme semantique (version, prerelease, build, snapshot) sinon le comportement est non predictibleint
compareTo(SemVer other)
static SemVer.SemVerCreator
creator()
Retourne un Createur sans aucune information.static SemVer.SemVerCreator
creator(int... v)
Createur qui permet de passer en parametre les different composante de l'element versionstatic SemVer.SemVerCreator
creator(String... v)
Permet de creer un objet version.static SemVer.SemVerCreator
creator(SemVer v)
Create creator initialized with SemVer value, you can change some Element by puting null value.boolean
equals(Object o)
String
getBuild()
String
getBuild(int i)
Retourne un des composants de l'element versionint
getBuildCount()
Donne le nombre de composante de la Prerelease 1.2.3 retourne 3 99.100 retourne 2protected String
getComposant(String element, int i)
Retourne un des composants de l'element versionprotected int
getComposantCount(String element)
Donne le nombre de composante de l'element 1.2.3 retourne 3 99.100 retourne 2SemVer.SemVerCreator
getCreator()
Retourne un objet creator initialise avec les donnees de ce SemVer ce qui permet de creer un nouveau SemVer en modifiant un des elementsString
getMajor()
String
getMinor()
String
getPatch()
String
getPrerelease()
String
getPrerelease(int i)
Retourne un des composants de l'element versionint
getPrereleaseCount()
Donne le nombre de composante de la Prerelease 1.2.3 retourne 3 99.100 retourne 2String
getSnapshot()
String
getVersion()
String
getVersion(int i)
Retourne un des composants de l'element versionint
getVersionCount()
Donne le nombre de composante de la version 1.2.3 retourne 3 99.100 retourne 2int
hashCode()
protected static String
ifNotNull(String prefix, String s)
static boolean
isSemVer(String version)
Indique si la chaine represente bien une version au format SemVerboolean
isSnapshot()
protected int
nullIsHigh(String a, String b)
Ne compare par le chaine, seulement la nullite, si un des arguments est null, alors il est plus grand que l'autre. 1.0 est plus grand que 1.0-Betaprotected int
nullIsLow(String a, String b)
Ne compare par le chaine, seulement la nullite, si un des arguments est null, alors il est plus petit que l'autre. 1.0+r123 est plus grand que 1.0String
toJavaIdentifier()
Convertit la representation textuelle de la version en identifiant java valide : - en java : "-" "." "+" interditString
toString()
-
-
-
Field Detail
-
SERIES_SEPARATOR
public static final String SERIES_SEPARATOR
Separateur utiliser entre chaque element d'une partie- See Also:
- Constant Field Values
-
PRERELEASE_SEPARATOR
public static final String PRERELEASE_SEPARATOR
Seperateur entre la version et l'element prerelease- See Also:
- Constant Field Values
-
BUILD_SEPARATOR
public static final String BUILD_SEPARATOR
Separateur utiliser devant l'element build- See Also:
- Constant Field Values
-
PATTERN_VERSION
public static final String PATTERN_VERSION
pattern pour une partie de l'element version- See Also:
- Constant Field Values
-
PATTERN_PRERELEASE
public static final String PATTERN_PRERELEASE
pattern pour une partie de l'element prerelease- See Also:
- Constant Field Values
-
PATTERN_BUILD
public static final String PATTERN_BUILD
pattern pour une partir de l'element build- See Also:
- Constant Field Values
-
SNAPSHOT_SEPARATOR
public static final String SNAPSHOT_SEPARATOR
Separateur de SNAPSHOT- See Also:
- Constant Field Values
-
SNAPSHOT
public static final String SNAPSHOT
la chaine de caractere representant le SNAPSHOT- See Also:
- Constant Field Values
-
version
protected String version
-
prerelease
protected String prerelease
-
build
protected String build
-
snapshot
protected String snapshot
-
-
Constructor Detail
-
SemVer
public SemVer(String versionString)
Create new Version object, strip is done on argument to remove extra space- Parameters:
versionString
- FIXME- Throws:
IllegalArgumentException
- if argument isn't valid version string
-
-
Method Detail
-
before
public boolean before(SemVer o)
- Parameters:
o
- the other version to test- Returns:
true
if current version is before the given one
-
after
public boolean after(SemVer o)
- Parameters:
o
- the other version to test- Returns:
true
if current version is after the given one
-
compareTo
public int compareTo(SemVer other)
- Specified by:
compareTo
in interfaceComparable<SemVer>
-
compare
protected int compare(String a, String b, boolean nullIsHigh)
Compare deux elements de meme semantique (version, prerelease, build, snapshot) sinon le comportement est non predictible- Parameters:
a
- FIXMEb
- FIXMEnullIsHigh
- indique si un des elements est null, s'il est plus grand ou plus petit que l'autre- Returns:
- negatif si a inferieur b, 0 si a == b, positif si a superieur a b
-
nullIsHigh
protected int nullIsHigh(String a, String b)
Ne compare par le chaine, seulement la nullite, si un des arguments est null, alors il est plus grand que l'autre. 1.0 est plus grand que 1.0-Beta- Parameters:
a
- FIXMEb
- FIXME- Returns:
- FIXME
-
nullIsLow
protected int nullIsLow(String a, String b)
Ne compare par le chaine, seulement la nullite, si un des arguments est null, alors il est plus petit que l'autre. 1.0+r123 est plus grand que 1.0- Parameters:
a
- FIXMEb
- FIXME- Returns:
- FIXME
-
getComposantCount
protected int getComposantCount(String element)
Donne le nombre de composante de l'element- 1.2.3 retourne 3
- 99.100 retourne 2
- Parameters:
element
- FIXME- Returns:
- FIXME
-
getComposant
protected String getComposant(String element, int i)
Retourne un des composants de l'element version- Parameters:
element
- FIXMEi
- FIXME- Returns:
- FIXME
-
getVersion
public String getVersion()
-
getVersionCount
public int getVersionCount()
Donne le nombre de composante de la version- 1.2.3 retourne 3
- 99.100 retourne 2
- Returns:
- FIXME
-
getVersion
public String getVersion(int i)
Retourne un des composants de l'element version- Parameters:
i
- FIXME- Returns:
- FIXME
-
getMajor
public String getMajor()
-
getMinor
public String getMinor()
-
getPatch
public String getPatch()
-
getPrerelease
public String getPrerelease()
-
getPrereleaseCount
public int getPrereleaseCount()
Donne le nombre de composante de la Prerelease- 1.2.3 retourne 3
- 99.100 retourne 2
- Returns:
- FIXME
-
getPrerelease
public String getPrerelease(int i)
Retourne un des composants de l'element version- Parameters:
i
- FIXME- Returns:
- FIXME
-
getBuild
public String getBuild()
-
getBuildCount
public int getBuildCount()
Donne le nombre de composante de la Prerelease- 1.2.3 retourne 3
- 99.100 retourne 2
- Returns:
- FIXME
-
getBuild
public String getBuild(int i)
Retourne un des composants de l'element version- Parameters:
i
- FIXME- Returns:
- FIXME
-
getSnapshot
public String getSnapshot()
-
isSnapshot
public boolean isSnapshot()
-
toJavaIdentifier
public String toJavaIdentifier()
Convertit la representation textuelle de la version en identifiant java valide : - en java : "-" "." "+" interdit- Returns:
- la valeur ou les carateres interdits sont remplaces par '_'
-
getCreator
public SemVer.SemVerCreator getCreator()
Retourne un objet creator initialise avec les donnees de ce SemVer ce qui permet de creer un nouveau SemVer en modifiant un des elements- Returns:
- FIXME
-
isSemVer
public static boolean isSemVer(String version)
Indique si la chaine represente bien une version au format SemVer- Parameters:
version
- FIXME- Returns:
- FIXME
-
creator
public static SemVer.SemVerCreator creator(String... v)
Permet de creer un objet version. Si des arguments sont passer en parametre ils sont pris dans l'ordre pour: la version, la prerelease, le build, le snapshotSemVer v = SemVer.creator().setVersion("1.2").setPrerelease("beta.1").setBuild("r123").done(); SemVer v = SemVer.creator("1.2", "beta.1","r123", SemVer.SNAPSHOT).done();
- Parameters:
v
- FIXME- Returns:
- FIXME
-
creator
public static SemVer.SemVerCreator creator(int... v)
Createur qui permet de passer en parametre les different composante de l'element version- Parameters:
v
- FIXME- Returns:
- FIXME
-
creator
public static SemVer.SemVerCreator creator(SemVer v)
Create creator initialized with SemVer value, you can change some Element by puting null value. SemVer n = SemVer.creator(v).setBuild("r123").setSnapshot(false).done();- Parameters:
v
- FIXME- Returns:
- FIXME
-
creator
public static SemVer.SemVerCreator creator()
Retourne un Createur sans aucune information. Cette methode permet aussi de desambiguise les deux autres methode creator qui si elle n'ont pas de parametre sont semblable- Returns:
- FIXME
-
-