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

changeset 40
b42bfc9e9983
parent 39
3ca85da78515
child 41
75ee588d5d9e
--- a/src/main/java/de/unixwork/uwproj/Dependency.java	Wed Sep 06 21:08:04 2023 +0200
+++ b/src/main/java/de/unixwork/uwproj/Dependency.java	Wed Sep 06 22:55:42 2023 +0200
@@ -1,79 +1,71 @@
-/*
- * 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 org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
-import java.util.LinkedList;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
-/**
- *
- * @author olaf
- */
+import static de.unixwork.uwproj.Util.isNullOrBlank;
+
 public class Dependency {
     private String name;
     private String platform;
     private String not;
-    
-    private List<Flags> flags = new LinkedList<>();
-    private List<PkgConfigPackage> pkgconfig = new LinkedList<>();
-    private List<String> tests = new LinkedList<>();
-    private StringBuilder make = new StringBuilder();
-    
-    private List<String> lang = new LinkedList<>();
-    
+
+    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 boolean abortOnError = false;
-    
+
     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.length() > 0) {
+        if (!name.isEmpty()) {
             d.setName(name);
         }
-        if(platform.length() > 0) {
+        if (!platform.isEmpty()) {
             d.setPlatform(platform);
         }
-        if(not.length() > 0) {
+        if (!not.isEmpty()) {
             d.setNotString(not);
         }
-        
+
         NodeList nodes = element.getChildNodes();
-        for(int i=0;i<nodes.getLength();i++) {
+        for (int i = 0; i < nodes.getLength(); i++) {
             Node node = nodes.item(i);
             if (node.getNodeType() == Node.ELEMENT_NODE) {
-                Element elm = (Element)node;
+                Element elm = (Element) node;
                 String n = elm.getNodeName();
-                if(n.equals("cflags") || n.equals("ldflags")) {
-                    Flags f = Flags.parse(elm);
-                    d.addFlags(f);
-                } else if(n.equals("pkgconfig")) {
+                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(Xml.getContent(elm));
-                } else if(n.equals("make")) {
-                    String m = Xml.getContent(elm);
+                } 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")) {
+                } else if (n.equals("lang")) {
                     d.lang.add(n.trim().toLowerCase());
                 }
             }
         }
-        
+
         return d;
     }
-    
+
     public String getName() {
         return name;
     }
@@ -85,40 +77,35 @@
     public String getPlatform() {
         return platform;
     }
-    
+
     public String getFullName() {
-        if(platform == null || platform.length() == 0) {
+        if (isNullOrBlank(platform)) {
             return name;
         } else {
-            return name+" platform=\""+platform+'"';
+            return name + " platform=\"" + platform + '"';
         }
     }
-    
+
     public void setNotString(String not) {
         this.not = not;
     }
-    
+
     public List<String> getNotList() {
-        List<String> notPlatforms = new LinkedList<>();
-        if(not != null) {
-            String[] n = not.split(",");
-            for(String s : n) {
-                notPlatforms.add(s);
-            }
-        }
-        return notPlatforms;
+        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<Flags> getFlags() {
+    public List<ConfigVar> getFlags() {
         return flags;
     }
 
-    public void addFlags(Flags flags) {
-        this.flags.add(flags);
+    public void addFlags(ConfigVar var) {
+        this.flags.add(var);
     }
 
     public List<PkgConfigPackage> getPkgconfig() {
@@ -136,28 +123,28 @@
     public void setAbortOnError(boolean abortOnError) {
         this.abortOnError = abortOnError;
     }
-    
+
     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;
     }

mercurial