Sat, 03 Aug 2019 11:02:55 +0200
make targets without name and prefix possible
/* * 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'); } }