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

Sun, 10 Sep 2023 12:52:10 +0200

author
Mike Becker <universe@uap-core.de>
date
Sun, 10 Sep 2023 12:52:10 +0200
changeset 41
75ee588d5d9e
parent 40
b42bfc9e9983
child 44
1d963f2c7e91
permissions
-rw-r--r--

some more code cleanup

package de.unixwork.uwproj;

import org.w3c.dom.Element;

import java.util.List;

import static de.unixwork.uwproj.Util.isNotNullOrBlank;

public class Feature {
    private String name;
    private String arg;
    private boolean def;

    private TargetData targetData;

    public static Feature parse(Project project, Element e) throws Exception {
        Feature feature = new Feature();
        String name = e.getAttribute("name");
        String arg = e.getAttribute("arg");
        String def = e.getAttribute("default");

        if (name.isBlank()) {
            throw new Exception("feature element requires name attribute");
        }

        String ld = def.toLowerCase();
        boolean on = ld.equals("on") || ld.equals("true");
        feature.setName(name);
        feature.setDefault(on);
        if (arg.isBlank()) {
            feature.setArg(name);
        } else {
            feature.setArg(arg);
        }

        feature.setTargetData(TargetData.parse(e));
        project.addFeature(feature);
        return feature;
    }

    public String getVarName() {
        return "FEATURE_" + name.toUpperCase();
    }

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

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

    public String getMake() {
        return targetData.getMake();
    }

    public boolean hasMake() {
        return isNotNullOrBlank(targetData.getMake());
    }

    public String getName() {
        return name;
    }

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

    public String getArg() {
        return arg;
    }

    public void setArg(String arg) {
        this.arg = arg;
    }

    public boolean isDefault() {
        return def;
    }

    public void setDefault(boolean def) {
        this.def = def;
    }

    public TargetData getTargetData() {
        return targetData;
    }

    public void setTargetData(TargetData targetData) {
        this.targetData = targetData;
    }
}

mercurial