12345678910111213141516171819202122232425262728293031323334353637 |
- const PROP_MODULE = '__module__name__';
- const PROP_IMPL_CLASS = '__impl__class__';
- let defaultModule = 'resources';
- export class ModuleContext {
- public static setDefaultModule(moduleName) {
- defaultModule = moduleName;
- }
- public static attachModule(cls, moduleName) {
- cls[PROP_MODULE] = moduleName;
- }
- public static getClassModule(cls) {
- return cls[PROP_MODULE] || defaultModule;
- }
- public static attachImplClass(cls, implCls) {
- cls[PROP_IMPL_CLASS] = implCls;
- }
- public static attachModuleAndImplClass(cls, moduleName, implCls) {
- cls[PROP_MODULE] = moduleName;
- cls[PROP_IMPL_CLASS] = implCls;
- }
- public static getImplClass(cls) {
- return cls[PROP_IMPL_CLASS] || cls;
- }
- public static createFromModule(cls) {
- let implCls = this.getImplClass(cls) || cls;
- return new implCls();
- }
- }
|