Class SemVer
java.lang.Object
org.nuiton.version.SemVer
- All Implemented Interfaces:
Comparable<SemVer>
Implantation de Semantic Versioning.
Cet objet est immutable, Il faut utiliser getCreator()
pour modifier un de ses elements
Quelques changements 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 numérique, les 3 premiers sont nommés
- major
- minor
- patch
- prerelease: 0 à N composant alphanumérique, le prefix est '-'
- build: 0 à N composant alphanumérique, 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 ClassesModifier and TypeClassDescriptionstatic classConstruit un objet version, la verification de la coherence est faite lors de l'appel du create. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Stringstatic final StringSéparateur utiliser devant l'élément buildstatic final StringPattern pour une partie de l'élément buildstatic final StringPattern pour une partie de l'élément prereleasestatic final StringPattern pour une partie de l'élément versionprotected Stringstatic final StringSéparateur entre la version et l'élément prereleasestatic final StringSéparateur utilisé entre chaque element d'une partieprotected Stringstatic final StringLa chaine de caractère représentant le SNAPSHOTstatic final StringSéparateur de SNAPSHOTprotected String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanbooleanprotected intCompare deux elements de meme semantique (version, prerelease, build, snapshot) sinon le comportement est non predictibleintstatic SemVer.SemVerCreatorcreator()Retourne un Créateur sans aucune information.static SemVer.SemVerCreatorcreator(int... v) Créateur qui permet de passer en paramètre les différentes composantes de l'élément versionstatic SemVer.SemVerCreatorPermet de creer un objet version.static SemVer.SemVerCreatorCreate creator initialized with SemVer value, you can change some Element by putting null value.booleangetBuild()getBuild(int i) Retourne un des composants de l'élément versionintDonne le nombre de composantes de la Prerelease 1.2.3 retourne 3 99.100 retourne 2protected StringgetComposant(String element, int i) Retourne un des composants de l'élément versionprotected intgetComposantCount(String element) Donne le nombre de composantes de l'élément 1.2.3 retourne 3 99.100 retourne 2Retourne un objet creator initialise avec les donnees de ce SemVer ce qui permet de créer un nouveau SemVer en modifiant un des elementsgetMajor()getMinor()getPatch()getPrerelease(int i) Retourne un des composants de l'élément versionintDonne le nombre de composantes de la Prerelease 1.2.3 retourne 3 99.100 retourne 2getVersion(int i) Retourne un des composants de l'élément versionintDonne le nombre de composantes de la version 1.2.3 retourne 3 99.100 retourne 2inthashCode()protected static Stringstatic booleanIndique si la chaine represente bien une version au format SemVerbooleanprotected intnullIsHigh(String a, String b) Ne compare pas la chaine, seulement la nullité, si un des arguments est null, alors il est plus grand que l'autre.protected intNe compare pas la chaine, seulement la nullite, si un des arguments est null, alors il est plus petit que l'autre.Convertit la representation textuelle de la version en identifiant java valide : - en java : "-" "." "+" interdittoString()
-
Field Details
-
SERIES_SEPARATOR
Séparateur utilisé entre chaque element d'une partie- See Also:
-
PRERELEASE_SEPARATOR
Séparateur entre la version et l'élément prerelease- See Also:
-
BUILD_SEPARATOR
-
PATTERN_VERSION
-
PATTERN_PRERELEASE
Pattern pour une partie de l'élément prerelease- See Also:
-
PATTERN_BUILD
-
SNAPSHOT_SEPARATOR
-
SNAPSHOT
-
version
-
prerelease
-
build
-
snapshot
-
-
Constructor Details
-
SemVer
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 Details
-
before
- Parameters:
o- the other version to test- Returns:
trueif current version is before the given one
-
after
- Parameters:
o- the other version to test- Returns:
trueif current version is after the given one
-
compareTo
- Specified by:
compareToin interfaceComparable<SemVer>
-
compare
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:
- négatif si
a < b, 0 sia == b, positif sia > b
-
nullIsHigh
-
nullIsLow
-
getComposantCount
Donne le nombre de composantes de l'élément- 1.2.3 retourne 3
- 99.100 retourne 2
- Parameters:
element- FIXME- Returns:
- FIXME
-
getComposant
-
getVersion
-
getVersionCount
public int getVersionCount()Donne le nombre de composantes de la version- 1.2.3 retourne 3
- 99.100 retourne 2
- Returns:
- FIXME
-
getVersion
Retourne un des composants de l'élément version- Parameters:
i- FIXME- Returns:
- FIXME
-
getMajor
-
getMinor
-
getPatch
-
getPrerelease
-
getPrereleaseCount
public int getPrereleaseCount()Donne le nombre de composantes de la Prerelease- 1.2.3 retourne 3
- 99.100 retourne 2
- Returns:
- FIXME
-
getPrerelease
Retourne un des composants de l'élément version- Parameters:
i- FIXME- Returns:
- FIXME
-
getBuild
-
getBuildCount
public int getBuildCount()Donne le nombre de composantes de la Prerelease- 1.2.3 retourne 3
- 99.100 retourne 2
- Returns:
- FIXME
-
getBuild
Retourne un des composants de l'élément version- Parameters:
i- FIXME- Returns:
- FIXME
-
getSnapshot
-
isSnapshot
public boolean isSnapshot() -
ifNotNull
-
equals
-
hashCode
-
toJavaIdentifier
Convertit la representation textuelle de la version en identifiant java valide : - en java : "-" "." "+" interdit- Returns:
- la valeur ou les caractères interdits sont remplacés par '_'
-
toString
-
getCreator
Retourne un objet creator initialise avec les donnees de ce SemVer ce qui permet de créer un nouveau SemVer en modifiant un des elements- Returns:
- FIXME
-
isSemVer
Indique si la chaine represente bien une version au format SemVer- Parameters:
version- FIXME- Returns:
- FIXME
-
creator
Permet de creer un objet version. Si des arguments sont passés en paramètre, 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
Créateur qui permet de passer en paramètre les différentes composantes de l'élément version- Parameters:
v- FIXME- Returns:
- FIXME
-
creator
Create creator initialized with SemVer value, you can change some Element by putting null value.SemVer n = SemVer.creator(v).setBuild("r123").setSnapshot(false).done();
- Parameters:
v- FIXME- Returns:
- FIXME
-
creator
Retourne un Créateur sans aucune information. Cette methode permet aussi de désambiguïser les deux autres methode creator qui si elles n'ont pas de paramètre sont semblables- Returns:
- FIXME
-