import org.visage.runtime.VisageObject; import org.visage.runtime.InitHelper; import org.visage.runtime.location.AbstractVariable; import org.visage.runtime.location.ChangeListener; import org.visage.runtime.location.IntVariable; /** * SimpleAttribute * * @author Brian Goetz */ public class SimpleAttribute$Impl implements SimpleAttribute$Intf { public SimpleAttribute$Impl() { addTriggers$(this); } private final IntVariable a = IntVariable.make(); private AbstractVariable[] attributes = { a }; public IntVariable get$a() { return a; } protected static void addTriggers$(final SimpleAttribute$Intf receiver) { // Call superclass addTriggers$() receiver.get$a().addChangeListener(new ChangeListener() { public boolean onChange() { System.out.println("a is now " + receiver.get$a().getAsInt()); return true; } }); } protected static void initAttributes$(final SimpleAttribute$Intf receiver) { // Call superclass setDefaults$() if (receiver.get$a().needDefault()) receiver.get$a().setAsInt(3); } protected static void userInit$(final SimpleAttribute$Intf receiver) { // Call superclass userInit$() System.out.println("a = " + receiver.get$a().getAsInt()); } public void initialize$() { initAttributes$(this); userInit$(this); InitHelper.finish(attributes); attributes = null; } public static void main(String[] args) { SimpleAttribute$Impl instance = new SimpleAttribute$Impl(); instance.initialize$(); System.out.println(instance.get$a().getAsInt()); instance = new SimpleAttribute$Impl(); instance.get$a().setAsInt(4); instance.initialize$(); System.out.println(instance.get$a().getAsInt()); } } interface SimpleAttribute$Intf extends VisageObject { public IntVariable get$a(); }