]> git.wh0rd.org - tt-rss.git/blame - lib/dojo/data/api/Identity.js.uncompressed.js
make precache_headlines_idle() start slower
[tt-rss.git] / lib / dojo / data / api / Identity.js.uncompressed.js
CommitLineData
1354d172
AD
1define("dojo/data/api/Identity", ["../..", "./Read"], function(dojo) {
2 // module:
3 // dojo/data/api/Identity
4 // summary:
5 // TODOC
6
7
8dojo.declare("dojo.data.api.Identity", dojo.data.api.Read, {
9 // summary:
10 // This is an abstract API that data provider implementations conform to.
11 // This file defines methods signatures and intentionally leaves all the
12 // methods unimplemented.
13
14 getFeatures: function(){
15 // summary:
16 // See dojo.data.api.Read.getFeatures()
17 return {
18 'dojo.data.api.Read': true,
19 'dojo.data.api.Identity': true
20 };
21 },
22
23 getIdentity: function(/* item */ item){
24 // summary:
25 // Returns a unique identifier for an item. The return value will be
26 // either a string or something that has a toString() method (such as,
27 // for example, a dojox.uuid.Uuid object).
28 // item:
29 // The item from the store from which to obtain its identifier.
30 // exceptions:
31 // Conforming implementations may throw an exception or return null if
32 // item is not an item.
33 // example:
34 // | var itemId = store.getIdentity(kermit);
35 // | assert(kermit === store.findByIdentity(store.getIdentity(kermit)));
36 throw new Error('Unimplemented API: dojo.data.api.Identity.getIdentity');
37 },
38
39 getIdentityAttributes: function(/* item */ item){
40 // summary:
41 // Returns an array of attribute names that are used to generate the identity.
42 // For most stores, this is a single attribute, but for some complex stores
43 // such as RDB backed stores that use compound (multi-attribute) identifiers
44 // it can be more than one. If the identity is not composed of attributes
45 // on the item, it will return null. This function is intended to identify
46 // the attributes that comprise the identity so that so that during a render
47 // of all attributes, the UI can hide the the identity information if it
48 // chooses.
49 // item:
50 // The item from the store from which to obtain the array of public attributes that
51 // compose the identifier, if any.
52 // example:
53 // | var itemId = store.getIdentity(kermit);
54 // | var identifiers = store.getIdentityAttributes(itemId);
55 // | assert(typeof identifiers === "array" || identifiers === null);
56 throw new Error('Unimplemented API: dojo.data.api.Identity.getIdentityAttributes');
57 },
58
59
60 fetchItemByIdentity: function(/* object */ keywordArgs){
61 // summary:
62 // Given the identity of an item, this method returns the item that has
63 // that identity through the onItem callback. Conforming implementations
64 // should return null if there is no item with the given identity.
65 // Implementations of fetchItemByIdentity() may sometimes return an item
66 // from a local cache and may sometimes fetch an item from a remote server,
67 //
68 // keywordArgs:
69 // An anonymous object that defines the item to locate and callbacks to invoke when the
70 // item has been located and load has completed. The format of the object is as follows:
71 // {
72 // identity: string|object,
73 // onItem: Function,
74 // onError: Function,
75 // scope: object
76 // }
77 // The *identity* parameter.
78 // The identity parameter is the identity of the item you wish to locate and load
79 // This attribute is required. It should be a string or an object that toString()
80 // can be called on.
81 //
82 // The *onItem* parameter.
83 // Function(item)
84 // The onItem parameter is the callback to invoke when the item has been loaded. It takes only one
85 // parameter, the item located, or null if none found.
86 //
87 // The *onError* parameter.
88 // Function(error)
89 // The onError parameter is the callback to invoke when the item load encountered an error. It takes only one
90 // parameter, the error object
91 //
92 // The *scope* parameter.
93 // If a scope object is provided, all of the callback functions (onItem,
94 // onError, etc) will be invoked in the context of the scope object.
95 // In the body of the callback function, the value of the "this"
96 // keyword will be the scope object. If no scope object is provided,
97 // the callback functions will be called in the context of dojo.global.
98 // For example, onItem.call(scope, item, request) vs.
99 // onItem.call(dojo.global, item, request)
100 if(!this.isItemLoaded(keywordArgs.item)){
101 throw new Error('Unimplemented API: dojo.data.api.Identity.fetchItemByIdentity');
102 }
103 }
104});
105
106return dojo.data.api.Identity;
107});