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

changeset 7
686991ae6e2f
parent 0
38775db5fdf5
child 8
82cd9f1d94cb
--- a/src/main/java/de/unixwork/uwproj/Project.java	Sat Aug 03 11:20:29 2019 +0200
+++ b/src/main/java/de/unixwork/uwproj/Project.java	Sat Aug 03 13:46:43 2019 +0200
@@ -19,6 +19,7 @@
 import javax.xml.parsers.ParserConfigurationException;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;
 
@@ -36,6 +37,9 @@
     private List<Option> options = new LinkedList<>();
     private List<Feature> features = new LinkedList<>();
     
+    private HashMap<String,ConfigVar> configVars = new HashMap<>();
+    private List<ConfigVar> configVarsList = new LinkedList<>();
+    
     public Project(File file) throws ParserConfigurationException, SAXException, IOException, Exception {
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         factory.setNamespaceAware(true);
@@ -47,6 +51,24 @@
         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();
+            for(int c=0;c<cfgs.getLength();c++) {
+                Node node = cfgs.item(c);
+                if (node.getNodeType() == Node.ELEMENT_NODE) {
+                    if(node.getNodeName().equals("var")) {
+                        ConfigVar var = ConfigVar.parse((Element)node);
+                        if(var != null) {
+                            configVarsList.add(var);
+                            configVars.put(var.getName(), var);
+                        }
+                    }
+                }
+            }
+        }
+        
         for(int i=0;i<dependency_nodes.getLength();i++) {
             addDependency(Dependency.parse((Element)dependency_nodes.item(i)));
         }
@@ -137,4 +159,12 @@
     public List<Feature> getFeatures() {
         return features;
     }
+    
+    public List<ConfigVar> getVars() {
+        return configVarsList;
+    }
+    
+    public boolean hasVar(String varName) {
+        return configVars.containsKey(varName);
+    }
 }

mercurial