InjectableApplication
abstract class
abstract class InjectableApplication {
final Module module = new Module();
final Module moduleRequestContext = new Module();
Injector _injector;
Injector get injector => _injector;
void run() {
module.value(InjectableApplication, this);
module.value(this.runtimeType, this);
_injector = new DynamicInjector(modules: [module]);
}
void prepareRequestModule(Module requestModule, request);
Future runAction(InjectableController controller, Type actionType, request) {
var requestModule = new Module();
prepareRequestModule(requestModule, request);
var requestContextInjector = injector.createChild(
controller.module == null ?
[requestModule, moduleRequestContext]
: [requestModule, controller.module, moduleRequestContext]
);
InjectableAction action = requestContextInjector.get(actionType);
return action.apply(this, request);
}
}
Properties
final Injector injector #
Injector get injector => _injector;
final Module module #
final Module module = new Module()
final Module moduleRequestContext #
final Module moduleRequestContext = new Module()
Methods
abstract void prepareRequestModule(Module requestModule, request) #
void run() #
void run() {
module.value(InjectableApplication, this);
module.value(this.runtimeType, this);
_injector = new DynamicInjector(modules: [module]);
}
Future runAction(InjectableController controller, Type actionType, request) #
Future runAction(InjectableController controller, Type actionType, request) {
var requestModule = new Module();
prepareRequestModule(requestModule, request);
var requestContextInjector = injector.createChild(
controller.module == null ?
[requestModule, moduleRequestContext]
: [requestModule, controller.module, moduleRequestContext]
);
InjectableAction action = requestContextInjector.get(actionType);
return action.apply(this, request);
}