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

Tue, 30 Jan 2024 21:32:11 +0100

author
Mike Becker <universe@uap-core.de>
date
Tue, 30 Jan 2024 21:32:11 +0100
changeset 114
0fa5a6f08245
parent 113
24f32dbd88cd
permissions
-rw-r--r--

remove unnecessary double-quotes in vars.mk - fixes #370

package de.unixwork.uwproj;

import org.w3c.dom.Element;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

import static java.util.function.Predicate.not;

public class TargetData {
    private final List<Define> defines = new LinkedList<>();
    private final List<String> dependencies = new LinkedList<>();
    private final List<String> make = new LinkedList<>();

    public TargetData(Element element) {
        Util.getChildElements(element).forEach(elm -> {
            switch (elm.getNodeName()) {
                case "define" -> defines.add(new Define(
                        elm.getAttribute("name"),
                        elm.getAttribute("value")
                ));
                case "dependencies" -> Arrays.stream(Util.getContent(elm).split(","))
                        .map(String::trim)
                        .filter(not(String::isBlank))
                        .map(Util::shId)
                        .forEach(dependencies::add);
                case "make" -> make.add(Util.getContent(elm));
            }
        });
    }

    public List<Define> getDefines() {
        return defines;
    }

    public List<String> getDependencies() {
        return dependencies;
    }

    public String getMake() {
        return String.join("\n", make);
    }

    public boolean hasMake() {
        return !make.isEmpty();
    }
}

mercurial