Sun, 10 Sep 2023 12:52:10 +0200
some more code cleanup
package de.unixwork.uwproj; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import java.util.*; import java.util.stream.Collectors; import static de.unixwork.uwproj.Util.isNullOrBlank; public class Dependency { private String name; private String platform; private String not; private final List<ConfigVar> flags = new LinkedList<>(); private final List<PkgConfigPackage> pkgconfig = new LinkedList<>(); private final List<String> tests = new LinkedList<>(); private final StringBuilder make = new StringBuilder(); private final List<String> lang = new LinkedList<>(); private int num = 0; public static Dependency parse(Element element) throws Exception { Dependency d = new Dependency(); String name = element.getAttribute("name"); String platform = element.getAttribute("platform"); String not = element.getAttribute("not"); if (!name.isEmpty()) { d.setName(name); } if (!platform.isEmpty()) { d.setPlatform(platform); } if (!not.isEmpty()) { d.setNotString(not); } 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("cflags") || n.equals("ldflags")) { Optional.ofNullable(ConfigVar.parse(elm, true)).ifPresent(d::addFlags); } else if (n.equals("pkgconfig")) { PkgConfigPackage pcp = PkgConfigPackage.parse(elm); d.addPkgconfig(pcp); } else if (n.equals("test")) { d.tests.add(Util.getContent(elm)); } else if (n.equals("make")) { String m = Util.getContent(elm); d.addMake(m); } else if (n.equals("lang")) { d.lang.add(n.trim().toLowerCase()); } } } return d; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPlatform() { return platform; } public String getFullName() { if (isNullOrBlank(platform)) { return name; } else { return name + " platform=\"" + platform + '"'; } } public void setNotString(String not) { this.not = not; } public List<String> getNotList() { return isNullOrBlank(not) ? Collections.emptyList() : Arrays.stream(not.split(",")).map(String::trim).collect(Collectors.toList()); } public void setPlatform(String platform) { this.platform = platform; } public List<ConfigVar> getFlags() { return flags; } public void addFlags(ConfigVar var) { this.flags.add(var); } public List<PkgConfigPackage> getPkgconfig() { return pkgconfig; } public void addPkgconfig(PkgConfigPackage pkgconfig) { this.pkgconfig.add(pkgconfig); } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public List<String> getTests() { return tests; } public void addMake(String m) { make.append(m.trim()); make.append('\n'); } public String getMake() { return make.toString(); } public List<String> getLang() { return lang; } }