Sun, 17 Sep 2023 12:19:52 +0200
removal of failed function in favor what the ancients actually did
package de.unixwork.uwproj; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import java.util.Arrays; import java.util.LinkedList; import java.util.List; public class TargetData { private final List<Define> defines = new LinkedList<>(); private final List<String> dependencies = new LinkedList<>(); private final StringBuilder make = new StringBuilder(); public static TargetData parse(Element element) { var target = 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")) { target.addDefine( elm.getAttribute("name"), elm.getAttribute("value") ); } else if (n.equals("dependencies")) { Arrays.stream(Util.getContent(elm).split(",")) .map(String::trim) .forEach(target::addDependency); } else if (n.equals("make")) { target.addMake(Util.getContent(elm)); } } } return target; } public List<Define> getDefines() { return defines; } public List<String> getDependencies() { return dependencies; } public String getMake() { return make.toString(); } public void addDefine(String name, String value) { if (name.isBlank()) { throw new IllegalArgumentException("define element requires name attribute"); } defines.add(new Define(name, value)); } public void addDependency(String d) { dependencies.add(d); } public void addMake(String m) { make.append(m.trim()); make.append('\n'); } }