Files
xp_tools/src/main/java/dev/micle/xptools/operation/OperationItem.java

85 lines
2.2 KiB
Java

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;
}
}