AnonymousTask.as

Go to the documentation of this file.
00001 import gugga.common.ITask;
00002 import gugga.debug.Assertion;
00003 import gugga.events.EventDispatcher;
00004 import gugga.utils.EventRethrower;
00005 
00009 class gugga.sequence.AnonymousTask 
00010         extends EventDispatcher implements ITask 
00011 {
00012         private var mObject : Object;
00013         private var mMethod : Function;
00014         private var mArguments : Array;
00015         
00016         private var mTask : ITask;
00017         
00018         public function AnonymousTask (aObject : Object, aMethod : Function, aArguments : Array)
00019         {
00020                 mObject = aObject;
00021                 mMethod = aMethod;
00022                 mArguments = aArguments;        
00023         }
00024         
00025         public function start() : Void 
00026         {
00027                 mTask = ITask(mMethod.apply(mObject, mArguments));
00028                 
00029                 Assertion.warningIfEmpty(mTask, "Anonymous task is empty.", this, arguments);
00030                 
00031                 EventRethrower.create(this, mTask, "completed");
00032                 EventRethrower.create(this, mTask, "interrupted");
00033                 EventRethrower.create(this, mTask, "start");
00034                 
00035                 mTask.start();
00036         }
00037 
00038         public function isRunning() : Boolean 
00039         {
00040                 return mTask.isRunning();
00041         }
00042 
00043         public function isImmediatelyInterruptable() : Boolean 
00044         {
00045                 return mTask.isImmediatelyInterruptable();
00046         }
00047 
00048         public function interrupt() : Void 
00049         {
00050                 mTask.interrupt();
00051         }
00052 }

Generated on Fri May 11 17:12:42 2007 for GuggaFramework by  doxygen 1.5.2