data-generator/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedVersion.java

106 lines
2.4 KiB
Java
Raw Normal View History

2023-01-18 02:00:02 +01:00
package it.cavallium.data.generator.plugin;
2023-01-18 01:48:54 +01:00
2023-01-20 01:14:37 +01:00
import static it.cavallium.data.generator.plugin.DataModel.joinPackage;
2023-01-18 01:48:54 +01:00
import java.util.List;
import java.util.Map;
import java.util.Objects;
2023-01-20 01:14:37 +01:00
import java.util.StringJoiner;
import org.jetbrains.annotations.NotNull;
2023-01-18 01:48:54 +01:00
2023-01-20 01:14:37 +01:00
public class ComputedVersion implements Comparable<ComputedVersion> {
2023-01-18 01:48:54 +01:00
private final String name;
private final int version;
private final boolean current;
public DetailsConfiguration details;
public List<VersionTransformation> transformations;
2023-01-20 01:14:37 +01:00
public ComputedVersion(ParsedVersion value, int version, boolean current, String versionName) {
2023-01-18 01:48:54 +01:00
this.details = value.details;
this.transformations = value.transformations;
2023-01-20 01:14:37 +01:00
this.name = versionName;
2023-01-18 01:48:54 +01:00
this.version = version;
this.current = current;
}
public int getVersion() {
return version;
}
public String getName() {
return name;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ComputedVersion that = (ComputedVersion) o;
2023-01-20 01:14:37 +01:00
return Objects.equals(version, that.version);
2023-01-18 01:48:54 +01:00
}
@Override
public int hashCode() {
2023-01-20 01:14:37 +01:00
return ConfigUtils.hashCode(version);
2023-01-18 01:48:54 +01:00
}
public String getPackage(String basePackageName) {
if (current) {
return joinPackage(basePackageName, "current");
} else {
2023-01-20 01:14:37 +01:00
return joinPackage(basePackageName, "v" + version);
2023-01-18 01:48:54 +01:00
}
}
2023-01-20 01:14:37 +01:00
public String getDataPackage(String basePackageName) {
return joinPackage(getPackage(basePackageName), "data");
}
public String getUpgradersPackage(String basePackageName) {
return joinPackage(getPackage(basePackageName), "upgraders");
}
public String getSerializersPackage(String basePackageName) {
return joinPackage(getPackage(basePackageName), "serializers");
}
public String getDataNullablesPackage(String basePackageName) {
return joinPackage(getDataPackage(basePackageName), "nullables");
}
2023-01-18 01:48:54 +01:00
public String getVersionVarName() {
return "V" + version;
}
2023-01-20 01:14:37 +01:00
public String getVersionShortInt() {
2023-01-18 01:48:54 +01:00
return Integer.toString(version);
}
public boolean isCurrent() {
return current;
}
2023-01-20 01:14:37 +01:00
@Override
public int compareTo(@NotNull ComputedVersion o) {
return Integer.compare(version, o.version);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(version);
sb.append(" (");
sb.append(name);
if (current) {
sb.append(", current");
}
sb.append(")");
return sb.toString();
}
2023-01-18 01:48:54 +01:00
}