/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package automenta.spacenet.var.scalar;
import java.util.LinkedList;
import java.util.List;
/**
*
* @author seh
*/
public class IntVar {
private int value;
public static interface IfIntChanges {
public void onIntChange(IntVar d);
}
private List<IfIntChanges> ifChanges = new LinkedList();
public IntVar(int i) {
super();
this.value = i;
}
public void add(int d) {
set(i() + d);
}
public void set(int newValue) {
if (value == newValue)
return;
this.value = newValue;
notifyChanges();
}
protected void notifyChanges() {
for (IfIntChanges d : ifChanges) {
d.onIntChange(this);
}
}
public int i() { return value; }
public double d() { return (double)value; }
public float f() { return (float)value; }
public IfIntChanges add(IfIntChanges d) {
ifChanges.add(d);
return d;
}
public IfIntChanges remove(IfIntChanges d) {
ifChanges.remove(d);
return d;
}
}