##// END OF EJS Templates
working on core/Cancellation
working on core/Cancellation

File last commit:

r0:6a5387d69bf1 default
r17:b8fc13e5c702 propose cancellat...
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();
}
}
});
});