Created toString and EnumUtils class to fix case dependent casting string to enum.

This commit is contained in:
2025-05-24 19:26:40 +01:00
parent b5ddcc9e22
commit e796927bf0
2 changed files with 35 additions and 1 deletions

View File

@ -1,5 +1,7 @@
package dev.micle.xptools.config;
import dev.micle.xptools.util.EnumUtils;
public class OperationItem {
private boolean isTag;
private String id;
@ -16,7 +18,7 @@ public class OperationItem {
isTag = splitString[0].startsWith("#");
id = isTag ? splitString[0].substring(1) : splitString[0];
type = OperationType.valueOf(splitString[1]);
type = EnumUtils.valueOf(OperationType.class, splitString[1]);
min = Float.parseFloat(splitString[2]);
max = Float.parseFloat(splitString[3]);
@ -27,6 +29,21 @@ public class OperationItem {
}
}
public String toString() {
StringBuilder builder = new StringBuilder();
if (isTag) {
builder.append("#");
}
builder
.append(id).append(",")
.append(type.toString()).append(",")
.append(min).append(",").append(max).append(",")
.append(priority).append(",")
.append(isLast);
return builder.toString();
}
public boolean isTag() {
return isTag;
}

View File

@ -0,0 +1,17 @@
package dev.micle.xptools.util;
public class EnumUtils {
public static <T extends Enum<?>> T valueOf(Class<T> clazz, String name) {
for (T e : clazz.getEnumConstants()) {
if (e.name().equalsIgnoreCase(name)) {
return e;
}
}
return null;
}
public static <T extends Enum<?>> T valueOfOrDefault(Class<T> clazz, String name, T defaultValue) {
T value = valueOf(clazz, name);
return (value == null) ? defaultValue : value;
}
}