All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.xolite.expressions.jaxb_abstr.ExpressionContext Maven / Gradle / Ivy

package net.sf.xolite.expressions.jaxb_abstr;


import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlElement;


/**
 * Context holding the values of the variables that can be used in the boolean expressions.
 * 
 * @author BEROL
 */
public class ExpressionContext {


    private List variables = new ArrayList();


    @XmlElement(name = "variable")
    public List getVariables() {
        return variables;
    }


    public void setVariables(List newVariables) {
        variables = newVariables;
    }


    private VariableDefinition getVariable(String variableName) {
        for (VariableDefinition v : variables) {
            if (v.getName().equals(variableName)) return v;
        }
        return null;
    }


    public boolean getVariableValue(String variableName) {
        VariableDefinition v = getVariable(variableName);
        if (v == null) throw new IllegalArgumentException("Variable '" + variableName + "' not defined");
        return v.getValue();
    }


    public void setVariableValue(String variableName, boolean variableValue) {
        VariableDefinition v = getVariable(variableName);
        if (v == null) variables.add(new VariableDefinition(variableName, variableValue));
        else v.setValue(variableValue);
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy