package dev.micle.xptools.operation; import dev.micle.xptools.util.EnumUtils; public class OperationItem { private final boolean isTag; private final String id; private final OperationType type; private final float min; private final float max; private final int priority; private final boolean isLast; public OperationItem(boolean isTag, String id, OperationType type, float min, float max, int priority, boolean isLast) { this.isTag = isTag; this.id = id; this.type = type; this.min = min; this.max = max; this.priority = priority; this.isLast = isLast; } public static OperationItem fromConfig(String configString) { String[] splitString = configString.split(","); if (splitString.length == 6) { boolean isTag = splitString[0].startsWith("#"); String id = isTag ? splitString[0].substring(1) : splitString[0]; OperationType type = EnumUtils.valueOf(OperationType.class, splitString[1]); float min = Float.parseFloat(splitString[2]); float max = Float.parseFloat(splitString[3]); int priority = Integer.parseInt(splitString[4]); boolean isLast = Boolean.parseBoolean(splitString[5]); return new OperationItem(isTag, id, type, min, max, priority, isLast); } return null; } @Override 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; } public String getId() { return id; } public OperationType getType() { return type; } public float getMin() { return min; } public float getMax() { return max; } public int getPriority() { return priority; } public boolean isLast() { return isLast; } }