in order to make sure that an attribute on emf side is used instead of the local variable in xtend, k3 generates some reflective calls.
ex for an Integer variable named "currentValue:
protected static Integer _privk3_currentValue(final VariableAspectVariableAspectProperties _self_, final Variable _self) {
try {
for (java.lang.reflect.Method m : _self.getClass().getMethods()) {
if (m.getName().equals("getCurrentValue") &&
m.getParameterTypes().length == 0) {
Object ret = m.invoke(_self);
if (ret != null) {
return (java.lang.Integer) ret;
} else {
return null;
}
}
}
} catch (Exception e) {
// Chut !
}
return _self_.currentValue;
}
protected static void _privk3_currentValue(final VariableAspectVariableAspectProperties _self_, final Variable _self, final Integer currentValue) {
boolean setterCalled = false;
try {
for (java.lang.reflect.Method m : _self.getClass().getMethods()) {
if (m.getName().equals("setCurrentValue")
&& m.getParameterTypes().length == 1) {
m.invoke(_self, currentValue);
setterCalled = true;
}
}
} catch (Exception e) {
// Chut !
}
if (!setterCalled) {
_self_.currentValue = currentValue;
}
}
}
they could benefit from the following study in order to use a more efficient coding of the reflective call: https://dzone.com/articles/java-reflection-but-faster?edition=398191&utm_source=Daily%20Digest&utm_medium=email&utm_campaign=Daily%20Digest%202018-09-18
in order to make sure that an attribute on emf side is used instead of the local variable in xtend, k3 generates some reflective calls.
ex for an Integer variable named "currentValue:
they could benefit from the following study in order to use a more efficient coding of the reflective call: https://dzone.com/articles/java-reflection-but-faster?edition=398191&utm_source=Daily%20Digest&utm_medium=email&utm_campaign=Daily%20Digest%202018-09-18