Created
May 9, 2011 12:53
-
-
Save neilmanuell/962463 to your computer and use it in GitHub Desktop.
Simple Robotlegs module with non child injector
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package revisual.modular { | |
import org.robotlegs.adapters.SwiftSuspendersInjector; | |
import org.robotlegs.core.IInjector; | |
import org.robotlegs.utilities.modular.core.IModule; | |
import revisual.modular.requests.ModuleRequest; | |
import revisual.modular.core.IModuleRequest; | |
import revisual.modular.signals.ModuleRequestSignal; | |
public class MyModule implements IModule { | |
private var _injector:IInjector; | |
public function MyModule() { | |
initiateModule(); | |
} | |
public function get injector():IInjector { | |
return _injector || ( _injector = new SwiftSuspendersInjector() ); | |
} | |
public function injectClient( value:IInjector ):void { | |
// retrieve the Singleton instance of ModuleRequestSignal from the module injector | |
// and map the value to the client injector | |
value.mapValue( ModuleRequestSignal, injector.getInstance( ModuleRequestSignal ) ); | |
// map the ModuleRequest as a class to its interface | |
value.mapClass( IModuleRequest, ModuleRequest ); | |
} | |
protected function initiateModule():void { | |
injector.mapValue( IInjector, injector ); | |
// map the ModuleRequestSignal as a Singleton in the module injector. | |
injector.mapSingleton( ModuleRequestSignal ); | |
// inject module classes here | |
} | |
public function dispose():void { | |
_injector = null; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment