diff --git a/src/main/java/com/falsepattern/lib/FalsePatternLib.java b/src/main/java/com/falsepattern/lib/FalsePatternLib.java index 4ea393c..c0d1fab 100644 --- a/src/main/java/com/falsepattern/lib/FalsePatternLib.java +++ b/src/main/java/com/falsepattern/lib/FalsePatternLib.java @@ -1,6 +1,6 @@ package com.falsepattern.lib; -import com.falsepattern.lib.api.Version; +import com.falsepattern.lib.version.Version; import com.google.common.eventbus.EventBus; import cpw.mods.fml.common.DummyModContainer; import cpw.mods.fml.common.LoadController; diff --git a/src/main/java/com/falsepattern/lib/api/ComplexVersion.java b/src/main/java/com/falsepattern/lib/api/ComplexVersion.java index f06dbc8..1008f0a 100644 --- a/src/main/java/com/falsepattern/lib/api/ComplexVersion.java +++ b/src/main/java/com/falsepattern/lib/api/ComplexVersion.java @@ -1,50 +1,15 @@ package com.falsepattern.lib.api; +import com.falsepattern.lib.version.Version; import lombok.NonNull; -import lombok.val; -import java.util.Arrays; -import java.util.stream.Collectors; - -public class ComplexVersion extends Version { - final Version[] versions; +/** + * Deprecated in 0.6.*, will be removed in 0.7.0. + * Moved to {@link com.falsepattern.lib.version.ComplexVersion}. + */ +@Deprecated +public class ComplexVersion extends com.falsepattern.lib.version.ComplexVersion { public ComplexVersion(@NonNull Version mainVersion, Version... subVersions) { - this.versions = new Version[subVersions.length + 1]; - this.versions[0] = mainVersion; - System.arraycopy(subVersions, 0, this.versions, 1, subVersions.length); - } - - @Override - public int compareTo(@NonNull Version o) { - if (o instanceof ComplexVersion) { - val other = (ComplexVersion) o; - int count = Math.min(versions.length, other.versions.length); - for (int i = 0; i < count; i++) { - val result = versions[i].compareTo(other.versions[i]); - if (result != 0) return result; - } - if (versions.length != other.versions.length) { - return versions.length - other.versions.length; - } else { - return 0; - } - } else if (o instanceof SemanticVersion) { - val other = (SemanticVersion) o; - val result = other.compareTo(versions[0]); - if (result != 0) { - return result; - } - if (versions.length > 1) { - return -1; - } - return 0; - } else { - throw new IllegalArgumentException("Could not compare version with class " + o.getClass().getName()); - } - } - - @Override - public String toString() { - return Arrays.stream(versions).map(Version::toString).collect(Collectors.joining("-")); + super(mainVersion, subVersions); } } diff --git a/src/main/java/com/falsepattern/lib/api/DependencyLoader.java b/src/main/java/com/falsepattern/lib/api/DependencyLoader.java index 0ef766e..02a5279 100644 --- a/src/main/java/com/falsepattern/lib/api/DependencyLoader.java +++ b/src/main/java/com/falsepattern/lib/api/DependencyLoader.java @@ -1,9 +1,15 @@ package com.falsepattern.lib.api; import com.falsepattern.lib.FalsePatternLib; +import com.falsepattern.lib.version.Version; import lombok.Builder; import lombok.NonNull; +/** + * Deprecated in 0.6.*, will be removed in 0.7.0. + * Outdated wrapper on top of the {@link FalsePatternLib} class. Use that one instead. + */ +@Deprecated public class DependencyLoader { @Builder public static void loadLibrary(String loadingModId, String groupId, String artifactId, @NonNull Version minVersion, Version maxVersion, @NonNull Version preferredVersion, String regularSuffix, String devSuffix) { diff --git a/src/main/java/com/falsepattern/lib/api/SemanticVersion.java b/src/main/java/com/falsepattern/lib/api/SemanticVersion.java index 4bf7ad2..95410aa 100644 --- a/src/main/java/com/falsepattern/lib/api/SemanticVersion.java +++ b/src/main/java/com/falsepattern/lib/api/SemanticVersion.java @@ -1,78 +1,20 @@ package com.falsepattern.lib.api; -import lombok.Builder; -import lombok.Getter; -import lombok.NonNull; -import lombok.val; - -import java.util.Objects; - -public class SemanticVersion extends Version { - @Getter - private final int majorVersion; - @Getter - private final int minorVersion; - @Getter - private final int patchVersion; - @Getter - private final String preRelease; - @Getter - private final String build; - - @Builder +/** + * Deprecated in 0.6.*, will be removed in 0.7.0. + * Moved to {@link com.falsepattern.lib.version.SemanticVersion}. + */ +@Deprecated +public class SemanticVersion extends com.falsepattern.lib.version.SemanticVersion { public SemanticVersion(int majorVersion, int minorVersion, int patchVersion, String preRelease, String build) { - this.majorVersion = majorVersion; - this.minorVersion = minorVersion; - this.patchVersion = patchVersion; - preRelease = preRelease == null ? null : preRelease.trim(); - build = build == null ? null : build.trim(); - this.preRelease = "".equals(preRelease) ? null : preRelease; - this.build = "".equals(build) ? null : build; + super(majorVersion, minorVersion, patchVersion, preRelease, build); } public SemanticVersion(int majorVersion, int minorVersion, int patchVersion, String preRelease) { - this(majorVersion, minorVersion, patchVersion, preRelease, null); + super(majorVersion, minorVersion, patchVersion, preRelease); } public SemanticVersion(int majorVersion, int minorVersion, int patchVersion) { - this(majorVersion, minorVersion, patchVersion, null, null); - } - - @Override - public int compareTo(@NonNull Version o) { - if (o instanceof ComplexVersion) { - val result = this.compareTo(((ComplexVersion)o).versions[0]); - if (result != 0) { - return result; - } else if (((ComplexVersion) o).versions.length > 1) { - return 1; - } else { - return 0; - } - } else if (o instanceof SemanticVersion) { - val other = (SemanticVersion)o; - if (majorVersion != other.majorVersion) { - return majorVersion - other.majorVersion; - } else if (minorVersion != other.minorVersion) { - return minorVersion - other.minorVersion; - } else if (patchVersion != other.patchVersion) { - return patchVersion - other.patchVersion; - } else if (!Objects.equals(preRelease, other.preRelease)) { - if (preRelease == null) { - return 1; - } else if (other.preRelease == null) { - return -1; - } - return preRelease.compareTo(other.preRelease); - } else { - return 0; - } - } - return 0; - } - - @Override - public String toString() { - return majorVersion + "." + minorVersion + "." + patchVersion + (preRelease == null ? "" : "-" + preRelease) + (build == null ? "" : "+" + build); + super(majorVersion, minorVersion, patchVersion); } } diff --git a/src/main/java/com/falsepattern/lib/api/Version.java b/src/main/java/com/falsepattern/lib/api/Version.java index 42fee72..17d7c19 100644 --- a/src/main/java/com/falsepattern/lib/api/Version.java +++ b/src/main/java/com/falsepattern/lib/api/Version.java @@ -1,15 +1,12 @@ package com.falsepattern.lib.api; -public abstract class Version implements Comparable { - Version(){} - - public boolean equals(Version other) { - return compareTo(other) == 0; - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof Version)) return false; - return equals((Version) obj); +/** + * Deprecated in 0.6.*, will be removed in 0.7.0. + * Moved to {@link com.falsepattern.lib.version.SemanticVersion}. + */ +@Deprecated +public abstract class Version extends com.falsepattern.lib.version.Version { + protected Version() { + super(); } } diff --git a/src/main/java/com/falsepattern/lib/version/ComplexVersion.java b/src/main/java/com/falsepattern/lib/version/ComplexVersion.java new file mode 100644 index 0000000..7779686 --- /dev/null +++ b/src/main/java/com/falsepattern/lib/version/ComplexVersion.java @@ -0,0 +1,50 @@ +package com.falsepattern.lib.version; + +import lombok.NonNull; +import lombok.val; + +import java.util.Arrays; +import java.util.stream.Collectors; + +public class ComplexVersion extends Version { + final Version[] versions; + public ComplexVersion(@NonNull Version mainVersion, Version... subVersions) { + this.versions = new Version[subVersions.length + 1]; + this.versions[0] = mainVersion; + System.arraycopy(subVersions, 0, this.versions, 1, subVersions.length); + } + + @Override + public int compareTo(@NonNull Version o) { + if (o instanceof ComplexVersion) { + val other = (ComplexVersion) o; + int count = Math.min(versions.length, other.versions.length); + for (int i = 0; i < count; i++) { + val result = versions[i].compareTo(other.versions[i]); + if (result != 0) return result; + } + if (versions.length != other.versions.length) { + return versions.length - other.versions.length; + } else { + return 0; + } + } else if (o instanceof SemanticVersion) { + val other = (SemanticVersion) o; + val result = other.compareTo(versions[0]); + if (result != 0) { + return result; + } + if (versions.length > 1) { + return -1; + } + return 0; + } else { + throw new IllegalArgumentException("Could not compare version with class " + o.getClass().getName()); + } + } + + @Override + public String toString() { + return Arrays.stream(versions).map(Version::toString).collect(Collectors.joining("-")); + } +} diff --git a/src/main/java/com/falsepattern/lib/version/SemanticVersion.java b/src/main/java/com/falsepattern/lib/version/SemanticVersion.java new file mode 100644 index 0000000..5456c60 --- /dev/null +++ b/src/main/java/com/falsepattern/lib/version/SemanticVersion.java @@ -0,0 +1,78 @@ +package com.falsepattern.lib.version; + +import lombok.Builder; +import lombok.Getter; +import lombok.NonNull; +import lombok.val; + +import java.util.Objects; + +public class SemanticVersion extends Version { + @Getter + private final int majorVersion; + @Getter + private final int minorVersion; + @Getter + private final int patchVersion; + @Getter + private final String preRelease; + @Getter + private final String build; + + @Builder + public SemanticVersion(int majorVersion, int minorVersion, int patchVersion, String preRelease, String build) { + this.majorVersion = majorVersion; + this.minorVersion = minorVersion; + this.patchVersion = patchVersion; + preRelease = preRelease == null ? null : preRelease.trim(); + build = build == null ? null : build.trim(); + this.preRelease = "".equals(preRelease) ? null : preRelease; + this.build = "".equals(build) ? null : build; + } + + public SemanticVersion(int majorVersion, int minorVersion, int patchVersion, String preRelease) { + this(majorVersion, minorVersion, patchVersion, preRelease, null); + } + + public SemanticVersion(int majorVersion, int minorVersion, int patchVersion) { + this(majorVersion, minorVersion, patchVersion, null, null); + } + + @Override + public int compareTo(@NonNull Version o) { + if (o instanceof ComplexVersion) { + val result = this.compareTo(((ComplexVersion)o).versions[0]); + if (result != 0) { + return result; + } else if (((ComplexVersion) o).versions.length > 1) { + return 1; + } else { + return 0; + } + } else if (o instanceof SemanticVersion) { + val other = (SemanticVersion)o; + if (majorVersion != other.majorVersion) { + return majorVersion - other.majorVersion; + } else if (minorVersion != other.minorVersion) { + return minorVersion - other.minorVersion; + } else if (patchVersion != other.patchVersion) { + return patchVersion - other.patchVersion; + } else if (!Objects.equals(preRelease, other.preRelease)) { + if (preRelease == null) { + return 1; + } else if (other.preRelease == null) { + return -1; + } + return preRelease.compareTo(other.preRelease); + } else { + return 0; + } + } + return 0; + } + + @Override + public String toString() { + return majorVersion + "." + minorVersion + "." + patchVersion + (preRelease == null ? "" : "-" + preRelease) + (build == null ? "" : "+" + build); + } +} diff --git a/src/main/java/com/falsepattern/lib/version/Version.java b/src/main/java/com/falsepattern/lib/version/Version.java new file mode 100644 index 0000000..411166b --- /dev/null +++ b/src/main/java/com/falsepattern/lib/version/Version.java @@ -0,0 +1,15 @@ +package com.falsepattern.lib.version; + +public abstract class Version implements Comparable { + protected Version(){} + + public boolean equals(Version other) { + return compareTo(other) == 0; + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof Version)) return false; + return equals((Version) obj); + } +}