4
namespace VQDR.Expression {
6
public class Context : GLib.Object{
8
private Gee.TreeMap<string, Variable?> values;
13
values = new Gee.TreeMap<string, Variable?>
14
(Common.Utils.str_cmp, null);
20
public void set_value (string name,
24
set_variable (name, Variable (min_val, max_val, current_val));
27
public Variable get_variable (string name) throws ArgError {
29
return values.@get (name.down ());
32
public void set_variable (string name, Variable? variable) {
33
string new_name = name.down ();
35
if (!(values.has_key (new_name)) ||
36
!(values.get(new_name).equals(variable))) {
38
values.set (new_name, variable);
43
private void throw_name (string name) throws ArgError {
44
if (! (values.has_key (name.down ()))) {
45
throw new ArgError.INVALID_ARGUMENT ("Name \"" +
51
public int get_value (string name) throws ArgError {
53
return values.@get (name.down ()).current_val;
56
public int get_min_value (string name) throws ArgError {
58
return values.@get (name.down ()).min_val;
61
public int get_max_value (string name) throws ArgError {
63
return values.@get (name.down ()).max_val;
66
public int get_current_value (string name) throws ArgError {
68
return values.@get (name.down ()).current_val;
71
public bool has_name (string name) {
72
return values.has_key (name.down ());
75
protected void reset () {