array MyInterface_nextFree569 integer MyInterface_firstFree116 integer MyInterface_maxIndex132 array MyInterface_typeId158 integer MyInterface_firstFree116 = 0 integer MyInterface_maxIndex132 = 0 function initGlobals396() { } function main153() { initGlobals396(); init_Test122(); } function config198() { } function init_Test122() { local integer a174 local integer b721 a_174 = new_MyInterfaceImpl582(); b_721 = new_MyInterfaceAbstractImpl124(); if ((dispatch_MyInterface_Test_MyInterface_getStr127(a_174) == "MyInterfaceImpl") and (dispatch_MyInterface_Test_MyInterface_getStr127(b_721) == "AAbstract")) { testSuccess786(); } else { }; } IS_NATIVE function testSuccess786() { } function MyInterfaceAbstract_getSome163(integer this162) returns string { return "AAbstract"; } function MyInterfaceAbstract_init110(integer this110) { } function construct_MyInterfaceAbstract465(integer this372) { MyInterfaceAbstract_init110(this_372); } function MyInterfaceAbstractImpl_getStr182(integer this337) returns string { return dispatch_MyInterfaceAbstract_Test_MyInterfaceAbstract_getSome696(this_337); } function MyInterfaceAbstractImpl_init312(integer this119) { } function new_MyInterfaceAbstractImpl124() returns integer { local integer this520 this_520 = alloc_MyInterfaceAbstractImpl545(); construct_MyInterfaceAbstractImpl195(this_520); return this_520; } function construct_MyInterfaceAbstractImpl195(integer this304) { construct_MyInterfaceAbstract465(this_304); MyInterfaceAbstractImpl_init312(this_304); } function MyInterfaceImpl_getStr150(integer this323) returns string { return "MyInterfaceImpl"; } function MyInterfaceImpl_init636(integer this401) { } function new_MyInterfaceImpl582() returns integer { local integer this179 this_179 = alloc_MyInterfaceImpl188(); construct_MyInterfaceImpl160(this_179); return this_179; } function construct_MyInterfaceImpl160(integer this180) { MyInterfaceImpl_init636(this_180); } function error114(string msg135) { $debugPrint199((msg_135 + (" " + #getStackTrace()))); } function alloc_MyInterfaceAbstractImpl545() returns integer { local integer this340 if (MyInterface_firstFree_116 == 0) { if (MyInterface_maxIndex_132 < 32768) { MyInterface_maxIndex_132 = (MyInterface_maxIndex_132 + 1); this_340 = MyInterface_maxIndex_132; MyInterface_typeId_158[this_340] = 3; } else { error114("Out of memory: Could not create MyInterfaceAbstractImpl."); this_340 = 0; }; } else { MyInterface_firstFree_116 = (MyInterface_firstFree_116 - 1); this_340 = MyInterface_nextFree_569[MyInterface_firstFree_116]; MyInterface_typeId_158[this_340] = 3; }; return this_340; } function alloc_MyInterfaceImpl188() returns integer { local integer this151 if (MyInterface_firstFree_116 == 0) { if (MyInterface_maxIndex_132 < 32768) { MyInterface_maxIndex_132 = (MyInterface_maxIndex_132 + 1); this_151 = MyInterface_maxIndex_132; MyInterface_typeId_158[this_151] = 4; } else { error114("Out of memory: Could not create MyInterfaceImpl."); this_151 = 0; }; } else { MyInterface_firstFree_116 = (MyInterface_firstFree_116 - 1); this_151 = MyInterface_nextFree_569[MyInterface_firstFree_116]; MyInterface_typeId_158[this_151] = 4; }; return this_151; } function dispatch_MyInterface_Test_MyInterface_getStr127(integer this502) returns string { local string Test_MyInterface_getStr_result150 if (MyInterface_typeId_158[this_502] == 0) { if (this_502 == 0) { error114("Nullpointer exception when calling MyInterface.getStr"); } else { error114("Called MyInterface.getStr on invalid object."); }; } else { }; if (MyInterface_typeId_158[this_502] <= 3) { Test_MyInterface_getStr_result_150 = MyInterfaceAbstractImpl_getStr182(this_502); } else { Test_MyInterface_getStr_result_150 = MyInterfaceImpl_getStr150(this_502); }; return Test_MyInterface_getStr_result_150; } function dispatch_MyInterfaceAbstract_Test_MyInterfaceAbstract_getSome696(integer this201) returns string { if (MyInterface_typeId_158[this_201] == 0) { if (this_201 == 0) { error114("Nullpointer exception when calling MyInterfaceAbstract.getSome"); } else { error114("Called MyInterfaceAbstract.getSome on invalid object."); }; } else { }; return MyInterfaceAbstract_getSome163(this_201); }