!7 cmodule TransientObjectHolder > DynPrintLog { transient O object; bool cleanUpObject = true; transient bool reloading; void cleanMeUp { if (cleanUpObject && !reloading) { print("Cleaning up held object"); cleanUp(object); } } // API O get() { ret object; } void set(O object) { setField(+object); printInfo(); } void printInfo { if (object == null) ret /*with print("No object")*/; print("Have object of type: " + _getClass(object)); print("Get it out with: dm_obj(" + dm_moduleID() + ")"); } void clear() { set(null); } O _getReloadData() { set reloading; //print("_getReloadData: " + object; ret object; } void _setReloadData(O o) { //print("_setReloadData: " + o); set(o); } start { printInfo(); } }