File: issue244973A.js

package info (click to toggle)
libnb-platform18-java 12.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 729,800 kB
  • sloc: java: 5,059,097; xml: 574,432; php: 78,788; javascript: 29,039; ansic: 10,278; sh: 6,386; cpp: 4,612; jsp: 3,643; sql: 1,097; makefile: 540; objc: 288; perl: 277; haskell: 93
file content (59 lines) | stat: -rw-r--r-- 1,867 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
define([], function() {

    /**
     * Load and stores pages definitions from and to the backend.
     * This class just delegates to the registered instance of the PagesManager.
     *
     * Please do not confuse this object with PagesManager from V1 - use
     * Pages object for the same purpose as PagesManager in V1
     *
     * TODO: lazy pages loading
     * TODO: add some prefix to the page keys in the storage
     *
     * @singleton.
     */
    var PagesManager = function() {
        Breeze.checkThis(this);
        Breeze.checkSingleton(PagesManager);
        this._implementation = null;
    };

    PagesManager.NO_IMPLEMENTATION_ERROR = new Error('No implementation of PagesManagerImpl registered!');
    PagesManager.INVALID_ARGUMENT = new Error('Invalid argument!');
    PagesManager.ALREADY_REGISTERED = new Error('Already registered!');

       
    PagesManager.prototype.loadPage = function(id, callback) {
        if (!this._implementation) {
            throw PagesManager.NO_IMPLEMENTATION_ERROR;
        }
        this._implementation.loadPage(id, callback);
    };

    PagesManager.prototype.getIds = function(callback) {
        if (!this._implementation) {
            throw PagesManager.NO_IMPLEMENTATION_ERROR;
        }
        this._implementation.getIds(callback);
    };

    PagesManager.prototype.storePage = function(page) {
        if (!this._implementation) {
            throw PagesManager.NoImplementationError;
        }
        this._implementation.storePage(page);
    };

    PagesManager.prototype.registerImplementation = function(impl) {
        if (!impl) {
            throw PagesManager.INVALID_ARGUMENT;
        }
        if (this._implementation) {
            throw PagesManager.ALREADY_REGISTERED;
        }
        this._implementation = impl;
    };

    return Breeze.initSingleton(PagesManager);

});