--- 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); + } }