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

changeset 0
38775db5fdf5
child 40
b42bfc9e9983
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/de/unixwork/uwproj/TargetData.java	Mon Feb 04 15:09:39 2019 +0100
@@ -0,0 +1,80 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package de.unixwork.uwproj;
+
+import java.util.LinkedList;
+import java.util.List;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ *
+ * @author olaf
+ */
+public class TargetData {
+    private List<Define> defines = new LinkedList<>();
+    private List<String> dependencies = new LinkedList<>();
+    private StringBuilder make = new StringBuilder();
+
+    public static TargetData parse(Element element) throws Exception {
+        TargetData data = new TargetData();
+        
+        NodeList nodes = element.getChildNodes();
+        for(int i=0;i<nodes.getLength();i++) {
+            Node node = nodes.item(i);
+            if (node.getNodeType() == Node.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 == null) {
+                        throw new Exception("define element requires name attribute");
+                    }
+                    data.addDefine(new Define(def, defval));
+                } else if(n.equals("dependencies")) {
+                    String deps = Xml.getContent(elm);
+                    String[] dependencies = deps.split(",");
+                    for(String dependency : dependencies) {
+                        dependency = dependency.trim();
+                        data.addDependency(dependency);
+                    }
+                } else if(n.equals("make")) {
+                    String m = Xml.getContent(elm);
+                    data.addMake(m);
+                }
+            }
+        }
+        
+        return data;
+    }
+    
+    public List<Define> getDefines() {
+        return defines;
+    }
+
+    public List<String> getDependencies() {
+        return dependencies;
+    }
+
+    public String getMake() {
+        return make.toString();
+    }
+    
+    public void addDefine(Define d) {
+        defines.add(d);
+    }
+    
+    public void addDependency(String d) {
+        dependencies.add(d);
+    }
+    
+    public void addMake(String m) {
+        make.append(m.trim());
+        make.append('\n');
+    }
+}

mercurial