array MyInterface_nextFree586 integer MyInterface_firstFree825 integer MyInterface_maxIndex181 array MyInterface_typeId102 integer MyInterface_firstFree825 = 0 integer MyInterface_maxIndex181 = 0 function initGlobals142() { } function main128() { initGlobals142(); init_Test522(); } function config194() { } function init_Test522() { local integer a128 local integer b183 a_128 = new_MyInterfaceImpl596(); b_183 = new_MyInterfaceAbstractImpl210(); if ((dispatch_MyInterface_Test_MyInterface_getStr159(a_128) == "MyInterfaceImpl") and (dispatch_MyInterface_Test_MyInterface_getStr159(b_183) == "AAbstract")) { testSuccess164(); } else { }; } IS_NATIVE function testSuccess164() { } function MyInterfaceAbstract_getSome651(integer this657) returns string { return "AAbstract"; } function MyInterfaceAbstract_init145(integer this662) { } function construct_MyInterfaceAbstract198(integer this273) { MyInterfaceAbstract_init145(this_273); } function MyInterfaceAbstractImpl_getStr162(integer this119) returns string { return dispatch_MyInterfaceAbstract_Test_MyInterfaceAbstract_getSome184(this_119); } function MyInterfaceAbstractImpl_init822(integer this902) { } function new_MyInterfaceAbstractImpl210() returns integer { local integer this125 this_125 = alloc_MyInterfaceAbstractImpl112(); construct_MyInterfaceAbstractImpl197(this_125); return this_125; } function construct_MyInterfaceAbstractImpl197(integer this707) { construct_MyInterfaceAbstract198(this_707); MyInterfaceAbstractImpl_init822(this_707); } function MyInterfaceImpl_getStr209(integer this130) returns string { return "MyInterfaceImpl"; } function MyInterfaceImpl_init100(integer this113) { } function new_MyInterfaceImpl596() returns integer { local integer this125 this_125 = alloc_MyInterfaceImpl778(); construct_MyInterfaceImpl104(this_125); return this_125; } function construct_MyInterfaceImpl104(integer this560) { MyInterfaceImpl_init100(this_560); } function error166(string msg212) { $debugPrint801((msg_212 + (" " + #getStackTrace()))); } function alloc_MyInterfaceAbstractImpl112() returns integer { local integer this169 if (MyInterface_firstFree_825 == 0) { if (MyInterface_maxIndex_181 < 32768) { MyInterface_maxIndex_181 = (MyInterface_maxIndex_181 + 1); this_169 = MyInterface_maxIndex_181; MyInterface_typeId_102[this_169] = 3; } else { error166("Out of memory: Could not create MyInterfaceAbstractImpl."); this_169 = 0; }; } else { MyInterface_firstFree_825 = (MyInterface_firstFree_825 - 1); this_169 = MyInterface_nextFree_586[MyInterface_firstFree_825]; MyInterface_typeId_102[this_169] = 3; }; return this_169; } function alloc_MyInterfaceImpl778() returns integer { local integer this158 if (MyInterface_firstFree_825 == 0) { if (MyInterface_maxIndex_181 < 32768) { MyInterface_maxIndex_181 = (MyInterface_maxIndex_181 + 1); this_158 = MyInterface_maxIndex_181; MyInterface_typeId_102[this_158] = 4; } else { error166("Out of memory: Could not create MyInterfaceImpl."); this_158 = 0; }; } else { MyInterface_firstFree_825 = (MyInterface_firstFree_825 - 1); this_158 = MyInterface_nextFree_586[MyInterface_firstFree_825]; MyInterface_typeId_102[this_158] = 4; }; return this_158; } function dispatch_MyInterface_Test_MyInterface_getStr159(integer this940) returns string { local string Test_MyInterface_getStr_result455 if (MyInterface_typeId_102[this_940] == 0) { if (this_940 == 0) { error166("Nullpointer exception when calling MyInterface.getStr"); } else { error166("Called MyInterface.getStr on invalid object."); }; } else { }; if (MyInterface_typeId_102[this_940] <= 3) { Test_MyInterface_getStr_result_455 = MyInterfaceAbstractImpl_getStr162(this_940); } else { Test_MyInterface_getStr_result_455 = MyInterfaceImpl_getStr209(this_940); }; return Test_MyInterface_getStr_result_455; } function dispatch_MyInterfaceAbstract_Test_MyInterfaceAbstract_getSome184(integer this432) returns string { if (MyInterface_typeId_102[this_432] == 0) { if (this_432 == 0) { error166("Nullpointer exception when calling MyInterfaceAbstract.getSome"); } else { error166("Called MyInterfaceAbstract.getSome on invalid object."); }; } else { }; return MyInterfaceAbstract_getSome651(this_432); }