
com.fathzer.jchess.uci.option.ComboOption Maven / Gradle / Ivy
package com.fathzer.jchess.uci.option;
import java.util.Set;
import java.util.function.Consumer;
import java.util.stream.Collectors;
public class ComboOption extends Option {
private final String defaultValue;
private final Set values;
public ComboOption(String name, Consumer trigger, String defaultValue, Set values) {
super(name, trigger);
if (!values.contains(defaultValue) || values.isEmpty()) {
throw new IllegalArgumentException();
}
this.defaultValue = defaultValue;
this.values = values;
this.setValue(defaultValue);
}
@Override
Type getType() {
return Type.COMBO;
}
@Override
public void setValue(String value) {
if (value==null || !values.contains(value)) {
throw new IllegalArgumentException();
}
setCastedValue(value);
}
@Override
public String toUCI() {
return super.toUCI()+DEFAULT+this.defaultValue+values.stream().map(v->" var "+v).collect(Collectors.joining());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy