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

Mon, 02 Oct 2023 16:55:40 +0200

author
Mike Becker <universe@uap-core.de>
date
Mon, 02 Oct 2023 16:55:40 +0200
changeset 79
ef0635b78b7b
parent 45
f4ec2feccebb
child 97
1af1bfacd25a
permissions
-rw-r--r--

remove explicit calls of getters in velocity template

package de.unixwork.uwproj;

import org.w3c.dom.Element;

import java.util.List;

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

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

    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 auto = e.getAttribute("default");

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

        feature.setName(name);
        feature.setAuto(Boolean.parseBoolean(auto));
        if (arg.isBlank()) {
            feature.setArg(name);
        } else {
            feature.setArg(arg);
        }

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

    public String getVarName() {
        return shId("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 isAuto() {
        return auto;
    }

    public void setAuto(boolean auto) {
        this.auto = auto;
    }

    public TargetData getTargetData() {
        return targetData;
    }

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

mercurial