# HG changeset patch # User Mike Becker # Date 1694343130 -7200 # Node ID 75ee588d5d9efdc5c6d47c19204b49c39ff8ff1f # Parent b42bfc9e99830aec8e991384c71af5d8cd10a69d some more code cleanup diff -r b42bfc9e9983 -r 75ee588d5d9e src/main/java/de/unixwork/uwproj/Define.java --- a/src/main/java/de/unixwork/uwproj/Define.java Wed Sep 06 22:55:42 2023 +0200 +++ b/src/main/java/de/unixwork/uwproj/Define.java Sun Sep 10 12:52:10 2023 +0200 @@ -1,13 +1,9 @@ package de.unixwork.uwproj; public class Define { - private String name; - private String value; + private final String name; + private final String value; - public Define() { - - } - public Define(String name, String value) { this.name = name; this.value = value; @@ -17,17 +13,9 @@ return name; } - public void setName(String name) { - this.name = name; - } - public String getValue() { return value; } - - public void setValue(String value) { - this.value = value; - } public String toFlags() { if(name == null) { diff -r b42bfc9e9983 -r 75ee588d5d9e src/main/java/de/unixwork/uwproj/Dependency.java --- a/src/main/java/de/unixwork/uwproj/Dependency.java Wed Sep 06 22:55:42 2023 +0200 +++ b/src/main/java/de/unixwork/uwproj/Dependency.java Sun Sep 10 12:52:10 2023 +0200 @@ -21,8 +21,6 @@ private final List lang = new LinkedList<>(); - private boolean abortOnError = false; - private int num = 0; public static Dependency parse(Element element) throws Exception { @@ -116,14 +114,6 @@ this.pkgconfig.add(pkgconfig); } - public boolean isAbortOnError() { - return abortOnError; - } - - public void setAbortOnError(boolean abortOnError) { - this.abortOnError = abortOnError; - } - public int getNum() { return num; } diff -r b42bfc9e9983 -r 75ee588d5d9e src/main/java/de/unixwork/uwproj/Feature.java --- a/src/main/java/de/unixwork/uwproj/Feature.java Wed Sep 06 22:55:42 2023 +0200 +++ b/src/main/java/de/unixwork/uwproj/Feature.java Sun Sep 10 12:52:10 2023 +0200 @@ -4,42 +4,44 @@ import java.util.List; +import static de.unixwork.uwproj.Util.isNotNullOrBlank; + public class Feature { private String name; private String arg; private boolean def; - + private TargetData targetData; - + public static Feature parse(Project project, Element e) throws Exception { Feature feature = new Feature(); String name = e.getAttribute("name"); String arg = e.getAttribute("arg"); String def = e.getAttribute("default"); - - if(name.isEmpty()) { + + if (name.isBlank()) { throw new Exception("feature element requires name attribute"); } - + String ld = def.toLowerCase(); boolean on = ld.equals("on") || ld.equals("true"); feature.setName(name); feature.setDefault(on); - if(arg.isEmpty()) { + if (arg.isBlank()) { feature.setArg(name); } else { feature.setArg(arg); } - + feature.setTargetData(TargetData.parse(e)); project.addFeature(feature); return feature; } - + public String getVarName() { - return "FEATURE_"+name.toUpperCase(); + return "FEATURE_" + name.toUpperCase(); } - + public List getDependencies() { return getTargetData().getDependencies(); } @@ -47,13 +49,13 @@ public List getDefines() { return getTargetData().getDefines(); } - + public String getMake() { return targetData.getMake(); } - + public boolean hasMake() { - return !targetData.getMake().trim().isEmpty(); + return isNotNullOrBlank(targetData.getMake()); } public String getName() { @@ -86,5 +88,5 @@ public void setTargetData(TargetData targetData) { this.targetData = targetData; - } + } } 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 getDependencies() { return targetData.getDependencies(); @@ -28,20 +29,16 @@ public List getDefines() { return targetData.getDefines(); } - - public void setTargetData(TargetData data) { - targetData = data; - } - + public String getFunc() { return option.getValueFunc(value); } - + public String getMake() { return targetData.getMake(); } - + public boolean hasMake() { - return !targetData.getMake().trim().isEmpty(); + return isNotNullOrBlank(targetData.getMake()); } } diff -r b42bfc9e9983 -r 75ee588d5d9e src/main/java/de/unixwork/uwproj/PkgConfigPackage.java --- a/src/main/java/de/unixwork/uwproj/PkgConfigPackage.java Wed Sep 06 22:55:42 2023 +0200 +++ b/src/main/java/de/unixwork/uwproj/PkgConfigPackage.java Sun Sep 10 12:52:10 2023 +0200 @@ -8,16 +8,16 @@ private String maxVersion; public static PkgConfigPackage parse(Element e) throws Exception { - PkgConfigPackage p = new PkgConfigPackage(); + var p = new PkgConfigPackage(); String name = Util.getContent(e); - if(name != null) { + if (name.isBlank()) { + throw new Exception("pkgconfig element: value required"); + } else { p.setName(name); - } else { - throw new Exception("pkgconfig element: value required"); } return p; } - + public String getName() { return name; } @@ -41,7 +41,7 @@ public void setMaxVersion(String maxVersion) { this.maxVersion = maxVersion; } - + public String getPkgConfigParam() { return name; } diff -r b42bfc9e9983 -r 75ee588d5d9e src/main/java/de/unixwork/uwproj/Project.java --- a/src/main/java/de/unixwork/uwproj/Project.java Wed Sep 06 22:55:42 2023 +0200 +++ b/src/main/java/de/unixwork/uwproj/Project.java Sun Sep 10 12:52:10 2023 +0200 @@ -6,11 +6,12 @@ import javax.xml.parsers.DocumentBuilderFactory; import java.io.File; -import java.util.*; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Optional; public class Project { - private final Properties properties = new Properties(); - private final HashMap> namedDependencies = new HashMap<>(); private final List dependencies = new LinkedList<>(); private final List targets = new LinkedList<>(); @@ -28,12 +29,10 @@ getDocumentElement(); NodeList dependency_nodes = root.getElementsByTagName("dependency"); NodeList target_nodes = root.getElementsByTagName("target"); - NodeList property_nodes = root.getElementsByTagName("property"); NodeList config_nodes = root.getElementsByTagName("config"); for (int i = 0; i < config_nodes.getLength(); i++) { - Element p = (Element) config_nodes.item(i); - NodeList cfgs = p.getChildNodes(); + NodeList cfgs = config_nodes.item(i).getChildNodes(); for (int c = 0; c < cfgs.getLength(); c++) { Node node = cfgs.item(c); if (node.getNodeType() == Node.ELEMENT_NODE) { @@ -53,16 +52,6 @@ for (int i = 0; i < target_nodes.getLength(); i++) { targets.add(Target.parse(this, (Element) target_nodes.item(i))); } - for (int i = 0; i < property_nodes.getLength(); i++) { - var p = (Element) property_nodes.item(i); - String name = p.getAttribute("name"); - String value = p.getAttribute("value"); - if (!name.isBlank() && !value.isBlank()) { - properties.setProperty(name, value); - } else { - throw new Exception("Missing property name or value"); - } - } if (targets.isEmpty()) { createDefaultTarget(); diff -r b42bfc9e9983 -r 75ee588d5d9e src/main/java/de/unixwork/uwproj/Target.java --- a/src/main/java/de/unixwork/uwproj/Target.java Wed Sep 06 22:55:42 2023 +0200 +++ b/src/main/java/de/unixwork/uwproj/Target.java Sun Sep 10 12:52:10 2023 +0200 @@ -4,69 +4,67 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import static de.unixwork.uwproj.Util.isNotNullOrBlank; +import static de.unixwork.uwproj.Util.isNullOrBlank; + public class Target { private String name; private String prefix; - + private final List dependencies = new LinkedList<>(); private final List optionalDependencies = new LinkedList<>(); private final List defines = new LinkedList<>(); private final List features = new LinkedList<>(); private final List