Subversion Repositories Applications.papyrus

Rev

Blame | Last modification | View Log | RSS feed

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');
                }
        }
});

}