]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojo/data/api/Identity.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojo / data / api / Identity.js
diff --git a/static/dojo-release-1.1.1/dojo/data/api/Identity.js b/static/dojo-release-1.1.1/dojo/data/api/Identity.js
new file mode 100644 (file)
index 0000000..d6d47f7
--- /dev/null
@@ -0,0 +1,107 @@
+if(!dojo._hasResource["dojo.data.api.Identity"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo.data.api.Identity"] = true;
+dojo.provide("dojo.data.api.Identity");
+dojo.require("dojo.data.api.Read");
+
+dojo.declare("dojo.data.api.Identity", dojo.data.api.Read, {
+       //      summary:
+       //              This is an abstract API that data provider implementations conform to.
+       //              This file defines methods signatures and intentionally leaves all the
+       //              methods unimplemented.
+
+       getFeatures: function(){
+               //      summary: 
+               //              See dojo.data.api.Read.getFeatures()
+               return {
+                        'dojo.data.api.Read': true,
+                        'dojo.data.api.Identity': true
+               };
+       },
+
+       getIdentity: function(/* item */ item){
+               //      summary:
+               //              Returns a unique identifier for an item.  The return value will be
+               //              either a string or something that has a toString() method (such as,
+               //              for example, a dojox.uuid.Uuid object).
+               //      item:
+               //              The item from the store from which to obtain its identifier.
+               //      exceptions:
+               //              Conforming implementations may throw an exception or return null if
+               //              item is not an item.
+               //      example:
+               //      |       var itemId = store.getIdentity(kermit);
+               //      |       assert(kermit === store.findByIdentity(store.getIdentity(kermit)));
+               throw new Error('Unimplemented API: dojo.data.api.Identity.getIdentity');
+               var itemIdentityString = null;
+               return itemIdentityString; // string
+       },
+
+       getIdentityAttributes: function(/* item */ item){
+               //      summary:
+               //              Returns an array of attribute names that are used to generate the identity. 
+               //              For most stores, this is a single attribute, but for some complex stores
+               //              such as RDB backed stores that use compound (multi-attribute) identifiers
+               //              it can be more than one.  If the identity is not composed of attributes
+               //              on the item, it will return null.  This function is intended to identify
+               //              the attributes that comprise the identity so that so that during a render
+               //              of all attributes, the UI can hide the the identity information if it 
+               //              chooses.
+               //      item:
+               //              The item from the store from which to obtain the array of public attributes that 
+               //              compose the identifier, if any.
+               //      example:
+               //      |       var itemId = store.getIdentity(kermit);
+               //      |       var identifiers = store.getIdentityAttributes(itemId);
+               //      |       assert(typeof identifiers === "array" || identifiers === null);
+               throw new Error('Unimplemented API: dojo.data.api.Identity.getIdentityAttributes');
+               return null; // string
+       },
+
+
+       fetchItemByIdentity: function(/* object */ keywordArgs){
+               //      summary:
+               //              Given the identity of an item, this method returns the item that has 
+               //              that identity through the onItem callback.  Conforming implementations 
+               //              should return null if there is no item with the given identity.  
+               //              Implementations of fetchItemByIdentity() may sometimes return an item 
+               //              from a local cache and may sometimes fetch an item from a remote server, 
+               //
+               //      keywordArgs:
+               //              An anonymous object that defines the item to locate and callbacks to invoke when the 
+               //              item has been located and load has completed.  The format of the object is as follows:
+               //              {
+               //                      identity: string|object,
+               //                      onItem: Function,
+               //                      onError: Function,
+               //                      scope: object
+               //              }
+               //      The *identity* parameter.
+               //              The identity parameter is the identity of the item you wish to locate and load
+               //              This attribute is required.  It should be a string or an object that toString() 
+               //              can be called on.
+               //              
+               //      The *onItem* parameter.
+               //              Function(item)
+               //              The onItem parameter is the callback to invoke when the item has been loaded.  It takes only one
+               //              parameter, the item located, or null if none found.
+               //
+               //      The *onError* parameter.
+               //              Function(error)
+               //              The onError parameter is the callback to invoke when the item load encountered an error.  It takes only one
+               //              parameter, the error object
+               //
+               //      The *scope* parameter.
+               //              If a scope object is provided, all of the callback functions (onItem, 
+               //              onError, etc) will be invoked in the context of the scope object.
+               //              In the body of the callback function, the value of the "this"
+               //              keyword will be the scope object.   If no scope object is provided,
+               //              the callback functions will be called in the context of dojo.global.
+               //              For example, onItem.call(scope, item, request) vs. 
+               //              onItem.call(dojo.global, item, request)
+               if (!this.isItemLoaded(keywordArgs.item)) {
+                       throw new Error('Unimplemented API: dojo.data.api.Identity.fetchItemByIdentity');
+               }
+       }
+});
+
+}