diff -r b42bfc9e9983 -r 75ee588d5d9e src/main/java/de/unixwork/uwproj/Option.java --- a/src/main/java/de/unixwork/uwproj/Option.java Wed Sep 06 22:55:42 2023 +0200 +++ b/src/main/java/de/unixwork/uwproj/Option.java Sun Sep 10 12:52:10 2023 +0200 @@ -6,45 +6,47 @@ import java.util.LinkedList; import java.util.List; +import java.util.stream.Collectors; + +import static de.unixwork.uwproj.Util.shId; public class Option { private String arg; - - LinkedList values = new LinkedList<>(); - LinkedList defaults = new LinkedList<>(); - - public static Option parse(Project project, Element element) throws Exception { - Option opt = new Option(); + + private final LinkedList values = new LinkedList<>(); + private final LinkedList defaults = new LinkedList<>(); + + public static Option parse(Element element) throws Exception { + var opt = new Option(); String arg = element.getAttribute("arg"); - if(arg.isEmpty()) { + if (arg.isBlank()) { throw new Exception("Option has no argument string"); } opt.setArgument(arg); - + NodeList nodes = element.getChildNodes(); - for(int i=0;i getValues() { return values; } - + public List getDefaults() { return defaults; } - + public String getValueFunc(String value) { - return "checkopt_"+arg+"_"+value; + return shId("checkopt_" + arg + "_" + value); } - + public String getValuesString() { - if(values.isEmpty()) { - return "()"; - } else if(values.size() == 1) { + if (values.size() == 1) { return values.get(0).getValue(); } else { - StringBuilder vs = new StringBuilder(); - vs.append('('); - for(int i=0;i