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

Sat, 03 Aug 2019 11:15:03 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sat, 03 Aug 2019 11:15:03 +0200
changeset 5
895bf81d3b6e
parent 0
38775db5fdf5
child 8
82cd9f1d94cb
permissions
-rw-r--r--

add missing source changes

/*
 * 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 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 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) {
            d.setName(name);
        }
        if(platform.length() > 0) {
            d.setPlatform(platform);
        }
        if(not.length() > 0) {
            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")) {
                    Flags f = Flags.parse(elm);
                    d.addFlags(f);
                } 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);
                    d.addMake(m);
                }
            }
        }
        
        return d;
    }
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPlatform() {
        return platform;
    }
    
    public String getPlatformString() {
        if(platform == null || platform.length() == 0) {
            return "";
        } else {
            return "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;
    }

    public void setPlatform(String platform) {
        this.platform = platform;
    }

    public List<Flags> getFlags() {
        return flags;
    }

    public void addFlags(Flags flags) {
        this.flags.add(flags);
    }

    public List<PkgConfigPackage> getPkgconfig() {
        return pkgconfig;
    }

    public void addPkgconfig(PkgConfigPackage pkgconfig) {
        this.pkgconfig.add(pkgconfig);
    }

    public boolean isAbortOnError() {
        return abortOnError;
    }

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

mercurial