Skip to content

Instantly share code, notes, and snippets.

@neilmanuell
Created May 9, 2011 12:53
Show Gist options
  • Save neilmanuell/962463 to your computer and use it in GitHub Desktop.
Save neilmanuell/962463 to your computer and use it in GitHub Desktop.
Simple Robotlegs module with non child injector
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