Mercurial > pub > ImplabJs
view core/src/js/data/DataContext.js @ 30:2dfba21cd879
sync
author | cin |
---|---|
date | Wed, 27 Jun 2018 02:46:14 +0300 |
parents | acdcdf1a8d21 |
children |
line wrap: on
line source
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(); } } }); });