##// END OF EJS Templates
Initial work on typescript support for the container configuration
Initial work on typescript support for the container configuration

File last commit:

r51:43a2828f8abe v1.2.0-rc di-typescript
r107:3725cefc8f98 ioc ts support
Show More
DataContext.js
44 lines | 1.5 KiB | application/javascript | JavascriptLexer
define([ "dojo/_base/declare", "../safe" ], function(declare, safe) {
return declare(
null,
{
_params : null,
_repositories : null,
constructor : function(opts) {
this._params = opts || {};
this._repositories = {};
},
getRepository : function(name) {
safe.argumentNotEmptyString(name, "name");
var repo = this._repositories[name];
if (!repo) {
repo = this._params[name];
if (!repo)
throw new Error("The repository '" + name +
"' isn't found");
if (repo instanceof Function)
repo = new repo(); // factory method or constructor
if (repo.initialize) {
repo.initialize({
dataContext : this
});
} else if (repo.setDataContext) {
repo.setDataContext(this);
}
this._repositories[name] = repo;
}
return repo;
},
dispose : function() {
for( var name in this._repositories) {
var r = this._repositories[name];
if (r.dispose)
r.dispose();
}
}
});
});