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 classSemVer.SemVerCreatorConstruit 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 Stringbuildstatic StringBUILD_SEPARATORSeparateur utiliser devant l'element buildstatic StringPATTERN_BUILDpattern pour une partir de l'element buildstatic StringPATTERN_PRERELEASEpattern pour une partie de l'element prereleasestatic StringPATTERN_VERSIONpattern pour une partie de l'element versionprotected Stringprereleasestatic StringPRERELEASE_SEPARATORSeperateur entre la version et l'element prereleasestatic StringSERIES_SEPARATORSeparateur utiliser entre chaque element d'une partieprotected Stringsnapshotstatic StringSNAPSHOTla chaine de caractere representant le SNAPSHOTstatic StringSNAPSHOT_SEPARATORSeparateur de SNAPSHOTprotected Stringversion
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanafter(SemVer o)booleanbefore(SemVer o)protected intcompare(String a, String b, boolean nullIsHigh)Compare deux elements de meme semantique (version, prerelease, build, snapshot) sinon le comportement est non predictibleintcompareTo(SemVer other)static SemVer.SemVerCreatorcreator()Retourne un Createur sans aucune information.static SemVer.SemVerCreatorcreator(int... v)Createur qui permet de passer en parametre les different composante de l'element versionstatic SemVer.SemVerCreatorcreator(String... v)Permet de creer un objet version.static SemVer.SemVerCreatorcreator(SemVer v)Create creator initialized with SemVer value, you can change some Element by puting null value.booleanequals(Object o)StringgetBuild()StringgetBuild(int i)Retourne un des composants de l'element versionintgetBuildCount()Donne le nombre de composante de la Prerelease 1.2.3 retourne 3 99.100 retourne 2protected StringgetComposant(String element, int i)Retourne un des composants de l'element versionprotected intgetComposantCount(String element)Donne le nombre de composante de l'element 1.2.3 retourne 3 99.100 retourne 2SemVer.SemVerCreatorgetCreator()Retourne un objet creator initialise avec les donnees de ce SemVer ce qui permet de creer un nouveau SemVer en modifiant un des elementsStringgetMajor()StringgetMinor()StringgetPatch()StringgetPrerelease()StringgetPrerelease(int i)Retourne un des composants de l'element versionintgetPrereleaseCount()Donne le nombre de composante de la Prerelease 1.2.3 retourne 3 99.100 retourne 2StringgetSnapshot()StringgetVersion()StringgetVersion(int i)Retourne un des composants de l'element versionintgetVersionCount()Donne le nombre de composante de la version 1.2.3 retourne 3 99.100 retourne 2inthashCode()protected static StringifNotNull(String prefix, String s)static booleanisSemVer(String version)Indique si la chaine represente bien une version au format SemVerbooleanisSnapshot()protected intnullIsHigh(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 intnullIsLow(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.0StringtoJavaIdentifier()Convertit la representation textuelle de la version en identifiant java valide : - en java : "-" "." "+" interditStringtoString()
-
-
-
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:
trueif current version is before the given one
-
after
public boolean after(SemVer o)
- Parameters:
o- the other version to test- Returns:
trueif current version is after the given one
-
compareTo
public int compareTo(SemVer other)
- Specified by:
compareToin 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
-
-