src/main/java/de/unixwork/uwproj/TargetData.java

changeset 41
75ee588d5d9e
parent 40
b42bfc9e9983
child 78
c3a62e0baa9e
--- a/src/main/java/de/unixwork/uwproj/TargetData.java	Wed Sep 06 22:55:42 2023 +0200
+++ b/src/main/java/de/unixwork/uwproj/TargetData.java	Sun Sep 10 12:52:10 2023 +0200
@@ -4,6 +4,7 @@
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
+import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -12,39 +13,33 @@
     private final List<String> dependencies = new LinkedList<>();
     private final StringBuilder make = new StringBuilder();
 
-    public static TargetData parse(Element element) throws Exception {
-        TargetData data = new TargetData();
-        
+    public static TargetData parse(Element element) {
+        var target = new TargetData();
+
         NodeList nodes = element.getChildNodes();
-        for(int i=0;i<nodes.getLength();i++) {
+        for (int i = 0; i < nodes.getLength(); i++) {
             Node node = nodes.item(i);
             if (node.getNodeType() == Node.ELEMENT_NODE) {
-                Element elm = (Element)node;
+                Element elm = (Element) node;
                 String n = elm.getNodeName();
-                if(n.equals("define")) {
-                    String def = elm.getAttribute("name");
-                    String defval = elm.getAttribute("value");
-                    if (def.isBlank()) {
-                        throw new Exception("define element requires name attribute");
-                    }
-                    data.addDefine(new Define(def, defval));
-                } else if(n.equals("dependencies")) {
-                    String deps = Util.getContent(elm);
-                    String[] dependencies = deps.split(",");
-                    for(String dependency : dependencies) {
-                        dependency = dependency.trim();
-                        data.addDependency(dependency);
-                    }
-                } else if(n.equals("make")) {
-                    String m = Util.getContent(elm);
-                    data.addMake(m);
+                if (n.equals("define")) {
+                    target.addDefine(
+                            elm.getAttribute("name"),
+                            elm.getAttribute("value")
+                    );
+                } else if (n.equals("dependencies")) {
+                    Arrays.stream(Util.getContent(elm).split(","))
+                            .map(String::trim)
+                            .forEach(target::addDependency);
+                } else if (n.equals("make")) {
+                    target.addMake(Util.getContent(elm));
                 }
             }
         }
-        
-        return data;
+
+        return target;
     }
-    
+
     public List<Define> getDefines() {
         return defines;
     }
@@ -56,15 +51,18 @@
     public String getMake() {
         return make.toString();
     }
-    
-    public void addDefine(Define d) {
-        defines.add(d);
+
+    public void addDefine(String name, String value) {
+        if (name.isBlank()) {
+            throw new IllegalArgumentException("define element requires name attribute");
+        }
+        defines.add(new Define(name, value));
     }
-    
+
     public void addDependency(String d) {
         dependencies.add(d);
     }
-    
+
     public void addMake(String m) {
         make.append(m.trim());
         make.append('\n');

mercurial