ModuleContext.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const PROP_MODULE = '__module__name__';
  2. const PROP_IMPL_CLASS = '__impl__class__';
  3. let defaultModule = 'resources';
  4. let title = 'resources';
  5. export class ModuleContext {
  6. public static setDefaultModule(moduleName) {
  7. defaultModule = moduleName;
  8. }
  9. public static attachModule(cls, moduleName) {
  10. cls[PROP_MODULE] = moduleName;
  11. }
  12. public static getClassModule(cls) {
  13. return cls[PROP_MODULE] || defaultModule;
  14. }
  15. public static attachImplClass(cls, implCls) {
  16. cls[PROP_IMPL_CLASS] = implCls;
  17. }
  18. public static attachModuleAndImplClass(cls, moduleName, implCls) {
  19. cls[PROP_MODULE] = moduleName;
  20. cls[PROP_IMPL_CLASS] = implCls;
  21. }
  22. public static getImplClass(cls) {
  23. return cls[PROP_IMPL_CLASS] || cls;
  24. }
  25. public static createFromModule(cls) {
  26. let implCls = this.getImplClass(cls) || cls;
  27. return new implCls();
  28. }
  29. public static getTitle() {
  30. return title;
  31. }
  32. public static setTitle(ti) {
  33. title= ti;
  34. }
  35. }