Skip to content

Commit 9c94f86

Browse files
authored
Make VersionProviders subclasses of their Version implementations (#137)
De-clutters the code base by removing the various `*Provider` files. Signed-off-by: nscuro <[email protected]>
1 parent e99366f commit 9c94f86

File tree

13 files changed

+82
-210
lines changed

13 files changed

+82
-210
lines changed

versatile-core/src/main/java/io/github/nscuro/versatile/version/DebianVersion.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import java.util.ArrayList;
2222
import java.util.Optional;
23+
import java.util.Set;
2324
import java.util.regex.Matcher;
2425
import java.util.regex.Pattern;
2526

@@ -32,6 +33,17 @@
3233
*/
3334
public class DebianVersion extends Version {
3435

36+
/**
37+
* @since 0.8.0
38+
*/
39+
public static class Provider extends AbstractBuiltinVersionProvider {
40+
41+
public Provider() {
42+
super(Set.of(SCHEME_DEBIAN), (scheme, versionStr) -> new DebianVersion(versionStr));
43+
}
44+
45+
}
46+
3547
private static final Pattern VERSION_PATTERN = Pattern.compile("""
3648
^((?<epoch>\\d+):)?(?<upstreamVersion>[A-Za-z0-9.+-:~]+?)(-(?<debianRevision>[A-Za-z0-9+.~]+))?$\
3749
""");

versatile-core/src/main/java/io/github/nscuro/versatile/version/DebianVersionProvider.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

versatile-core/src/main/java/io/github/nscuro/versatile/version/GenericVersion.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,23 @@
2020

2121
import io.github.nscuro.versatile.version.ext.ComponentVersion;
2222

23+
import java.util.Set;
24+
25+
import static io.github.nscuro.versatile.version.KnownVersioningSchemes.SCHEME_GENERIC;
26+
2327
public class GenericVersion extends Version {
2428

29+
/**
30+
* @since 0.8.0
31+
*/
32+
public static class Provider extends AbstractBuiltinVersionProvider {
33+
34+
public Provider() {
35+
super(Set.of(SCHEME_GENERIC), GenericVersion::new);
36+
}
37+
38+
}
39+
2540
private final ComponentVersion delegate; // TODO: Use a custom implementation.
2641

2742
GenericVersion(final String scheme, final String versionStr) {

versatile-core/src/main/java/io/github/nscuro/versatile/version/GenericVersionProvider.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

versatile-core/src/main/java/io/github/nscuro/versatile/version/GoVersion.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import java.util.Map;
2222
import java.util.Objects;
23+
import java.util.Set;
2324

2425
import static io.github.nscuro.versatile.version.KnownVersioningSchemes.SCHEME_GOLANG;
2526
import static io.github.nscuro.versatile.version.VersionUtils.isAlphaNumeric;
@@ -31,6 +32,17 @@
3132
*/
3233
public class GoVersion extends Version {
3334

35+
/**
36+
* @since 0.8.0
37+
*/
38+
public static class Provider extends AbstractBuiltinVersionProvider {
39+
40+
public Provider() {
41+
super(Set.of(SCHEME_GOLANG), (scheme, versionStr) -> new GoVersion(versionStr));
42+
}
43+
44+
}
45+
3446
private final String major;
3547
private final String minor;
3648
private final String patch;

versatile-core/src/main/java/io/github/nscuro/versatile/version/GoVersionProvider.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

versatile-core/src/main/java/io/github/nscuro/versatile/version/MavenVersion.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,24 @@
2121
import org.apache.maven.artifact.versioning.ArtifactVersion;
2222
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
2323

24+
import java.util.Set;
2425
import java.util.regex.Pattern;
2526

2627
import static io.github.nscuro.versatile.version.KnownVersioningSchemes.SCHEME_MAVEN;
2728

2829
public class MavenVersion extends Version {
2930

31+
/**
32+
* @since 0.8.0
33+
*/
34+
public static class Provider extends AbstractBuiltinVersionProvider {
35+
36+
public Provider() {
37+
super(Set.of(SCHEME_MAVEN), (scheme, versionStr) -> new MavenVersion(versionStr));
38+
}
39+
40+
}
41+
3042
private static final Pattern UNSTABLE_QUALIFIER_PATTERN = Pattern.compile("""
3143
^(snapshot|rc\\d*|alpha\\.?\\d*|beta\\.?\\d*|m\\.?\\d*|milestone\\.\\d*)$
3244
""", Pattern.CASE_INSENSITIVE);

versatile-core/src/main/java/io/github/nscuro/versatile/version/MavenVersionProvider.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

versatile-core/src/main/java/io/github/nscuro/versatile/version/NpmVersion.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,23 @@
2121
import com.vdurmont.semver4j.Semver;
2222
import com.vdurmont.semver4j.SemverException;
2323

24+
import java.util.Set;
25+
2426
import static io.github.nscuro.versatile.version.KnownVersioningSchemes.SCHEME_NPM;
2527

2628
public class NpmVersion extends Version {
2729

30+
/**
31+
* @since 0.8.0
32+
*/
33+
public static class Provider extends AbstractBuiltinVersionProvider {
34+
35+
public Provider() {
36+
super(Set.of(SCHEME_NPM), (scheme, versionStr) -> new NpmVersion(versionStr));
37+
}
38+
39+
}
40+
2841
private final Semver delegate;
2942

3043
NpmVersion(final String versionStr) {

versatile-core/src/main/java/io/github/nscuro/versatile/version/NpmVersionProvider.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)