modelfactory.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // Copyright (c) Jupyter Development Team.
  2. // Distributed under the terms of the Modified BSD License.
  3. import {
  4. IContents
  5. } from 'jupyter-js-services';
  6. import {
  7. IModelFactory
  8. } from '../../docregistry';
  9. import {
  10. INotebookModel, NotebookModel
  11. } from './model';
  12. /**
  13. * A model factory for notebooks.
  14. */
  15. export
  16. class NotebookModelFactory implements IModelFactory {
  17. /**
  18. * The name of the model.
  19. *
  20. * #### Notes
  21. * This is a read-only property.
  22. */
  23. get name(): string {
  24. return 'notebook';
  25. }
  26. /**
  27. * The type of the file.
  28. *
  29. * #### Notes
  30. * This is a read-only property.
  31. */
  32. get fileType(): IContents.FileType {
  33. return 'notebook';
  34. }
  35. /**
  36. * The format of the file.
  37. *
  38. * This is a read-only property.
  39. */
  40. get fileFormat(): IContents.FileFormat {
  41. return 'json';
  42. }
  43. /**
  44. * Get whether the model factory has been disposed.
  45. */
  46. get isDisposed(): boolean {
  47. return this._disposed;
  48. }
  49. /**
  50. * Dispose of the model factory.
  51. */
  52. dispose(): void {
  53. this._disposed = true;
  54. }
  55. /**
  56. * Create a new model for a given path.
  57. *
  58. * @param languagePreference - An optional kernel language preference.
  59. *
  60. * @returns A new document model.
  61. */
  62. createNew(languagePreference?: string): INotebookModel {
  63. return new NotebookModel({ languagePreference });
  64. }
  65. /**
  66. * Get the preferred kernel language given a path.
  67. */
  68. preferredLanguage(path: string): string {
  69. return '';
  70. }
  71. private _disposed = false;
  72. }