@BA.Events(values = {"OnAddition(x as int, y as int) as int", "OnSaySomething()",
"OnSubtraction(x as int, y as int) as int", "OnMultiplication(x as int, y as int) as int"})
@BA.ShortName("MathsWrapper")
public class MathsWrapper extends AbsObjectWrapper<Maths> {
private BA ba;
private String eventName;
private Maths mat;
public void Initialize(final BA ba, String EventName) {
this.ba = ba;
this.eventName = EventName;
mat = new Maths() {
@Override
public int addition(int x, int y) {
Integer result = (Integer) ba.raiseEvent2(MathsWrapper.this,false,eventName+"_onaddition",false,x,y);
if (result == null)
return -1;
return result;
}
@Override
public int subtraction(int x, int y) {
BA.Log("in subtraction method");
return 0;
}
@Override
public int multiplication(int x, int y) {
BA.Log("in multiplication method");
return 0;
}
@Override
public void saySomething() {
BA.Log("in saysomething method");
ba.raiseEvent(MathsWrapper.this,eventName+"_onsaysomething", new Object[]{});
}
};
setObject(mat);
}
@BA.RaisesSynchronousEvents
public void SaySomething(){
mat.saySomething();
}
@BA.RaisesSynchronousEvents
public int Addition(int x, int y){
return mat.addition(x, y);
}
}