diff --git a/src/main/java/dev/micle/xptools/config/OperationItem.java b/src/main/java/dev/micle/xptools/config/OperationItem.java index 63e3d6d..760d311 100644 --- a/src/main/java/dev/micle/xptools/config/OperationItem.java +++ b/src/main/java/dev/micle/xptools/config/OperationItem.java @@ -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; } diff --git a/src/main/java/dev/micle/xptools/util/EnumUtils.java b/src/main/java/dev/micle/xptools/util/EnumUtils.java new file mode 100644 index 0000000..00a7a1f --- /dev/null +++ b/src/main/java/dev/micle/xptools/util/EnumUtils.java @@ -0,0 +1,17 @@ +package dev.micle.xptools.util; + +public class EnumUtils { + public static > T valueOf(Class clazz, String name) { + for (T e : clazz.getEnumConstants()) { + if (e.name().equalsIgnoreCase(name)) { + return e; + } + } + return null; + } + + public static > T valueOfOrDefault(Class clazz, String name, T defaultValue) { + T value = valueOf(clazz, name); + return (value == null) ? defaultValue : value; + } +}