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

changeset 0
38775db5fdf5
child 40
b42bfc9e9983
equal deleted inserted replaced
-1:000000000000 0:38775db5fdf5
1 /*
2 * To change this license header, choose License Headers in Project Properties.
3 * To change this template file, choose Tools | Templates
4 * and open the template in the editor.
5 */
6 package de.unixwork.uwproj;
7
8 import java.util.LinkedList;
9 import java.util.List;
10 import org.w3c.dom.Element;
11 import org.w3c.dom.Node;
12 import org.w3c.dom.NodeList;
13
14 /**
15 *
16 * @author olaf
17 */
18 public class TargetData {
19 private List<Define> defines = new LinkedList<>();
20 private List<String> dependencies = new LinkedList<>();
21 private StringBuilder make = new StringBuilder();
22
23 public static TargetData parse(Element element) throws Exception {
24 TargetData data = new TargetData();
25
26 NodeList nodes = element.getChildNodes();
27 for(int i=0;i<nodes.getLength();i++) {
28 Node node = nodes.item(i);
29 if (node.getNodeType() == Node.ELEMENT_NODE) {
30 Element elm = (Element)node;
31 String n = elm.getNodeName();
32 if(n.equals("define")) {
33 String def = elm.getAttribute("name");
34 String defval = elm.getAttribute("value");
35 if(def == null) {
36 throw new Exception("define element requires name attribute");
37 }
38 data.addDefine(new Define(def, defval));
39 } else if(n.equals("dependencies")) {
40 String deps = Xml.getContent(elm);
41 String[] dependencies = deps.split(",");
42 for(String dependency : dependencies) {
43 dependency = dependency.trim();
44 data.addDependency(dependency);
45 }
46 } else if(n.equals("make")) {
47 String m = Xml.getContent(elm);
48 data.addMake(m);
49 }
50 }
51 }
52
53 return data;
54 }
55
56 public List<Define> getDefines() {
57 return defines;
58 }
59
60 public List<String> getDependencies() {
61 return dependencies;
62 }
63
64 public String getMake() {
65 return make.toString();
66 }
67
68 public void addDefine(Define d) {
69 defines.add(d);
70 }
71
72 public void addDependency(String d) {
73 dependencies.add(d);
74 }
75
76 public void addMake(String m) {
77 make.append(m.trim());
78 make.append('\n');
79 }
80 }

mercurial