Subversion Repositories Applications.papyrus

Rev

Blame | Last modification | View Log | RSS feed

if(!dojo._hasResource["dojo.data.api.Write"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojo.data.api.Write"] = true;
dojo.provide("dojo.data.api.Write");
dojo.require("dojo.data.api.Read");

dojo.declare("dojo.data.api.Write", dojo.data.api.Read, {
        //      summary:
        //              This is an abstract API that data provider implementations conform to.  
        //              This file defines function signatures and intentionally leaves all the
        //              functionss unimplemented.

        getFeatures: function(){
                //      summary: 
                //              See dojo.data.api.Read.getFeatures()
                return {
                        'dojo.data.api.Read': true,
                        'dojo.data.api.Write': true
                };
        },

        newItem: function(/* Object? */ keywordArgs, /*Object?*/ parentInfo){
                //      summary:
                //              Returns a newly created item.  Sets the attributes of the new
                //              item based on the *keywordArgs* provided.  In general, the attribute
                //              names in the keywords become the attributes in the new item and as for
                //              the attribute values in keywordArgs, they become the values of the attributes
                //              in the new item.  In addition, for stores that support hierarchical item 
                //              creation, an optional second parameter is accepted that defines what item is the parent
                //              of the new item and what attribute of that item should the new item be assigned to.
                //              In general, this will assume that the attribute targetted is multi-valued and a new item
                //              is appended onto the list of values for that attribute.  
                //
                //      keywordArgs:
                //              A javascript object defining the initial content of the item as a set of JavaScript 'property name: value' pairs.
                //      parentInfo:
                //              An optional javascript object defining what item is the parent of this item (in a hierarchical store.  Not all stores do hierarchical items), 
                //              and what attribute of that parent to assign the new item to.  If this is present, and the attribute specified
                //              is a multi-valued attribute, it will append this item into the array of values for that attribute.  The structure
                //              of the object is as follows:
                //              {
                //                      parent: someItem,
                //                      attribute: "attribute-name-string"
                //              }
                //
                //      exceptions:
                //              Throws an exception if *keywordArgs* is a string or a number or
                //              anything other than a simple anonymous object.  
                //              Throws an exception if the item in parentInfo is not an item from the store
                //              or if the attribute isn't an attribute name string.
                //      example:
                //      |       var kermit = store.newItem({name: "Kermit", color:[blue, green]});

                var newItem;
                throw new Error('Unimplemented API: dojo.data.api.Write.newItem');
                return newItem; // item
        },

        deleteItem: function(/* item */ item){
                //      summary:
                //              Deletes an item from the store.
                //
                //      item: 
                //              The item to delete.
                //
                //      exceptions:
                //              Throws an exception if the argument *item* is not an item 
                //              (if store.isItem(item) returns false).
                //      example:
                //      |       var success = store.deleteItem(kermit);
                throw new Error('Unimplemented API: dojo.data.api.Write.deleteItem');
                return false; // boolean
        },

        setValue: function(     /* item */ item, 
                                                /* string */ attribute,
                                                /* almost anything */ value){
                //      summary:
                //              Sets the value of an attribute on an item.
                //              Replaces any previous value or values.
                //
                //      item:
                //              The item to modify.
                //      attribute:
                //              The attribute of the item to change represented as a string name.
                //      value:
                //              The value to assign to the item.
                //
                //      exceptions:
                //              Throws an exception if *item* is not an item, or if *attribute*
                //              is neither an attribute object or a string.
                //              Throws an exception if *value* is undefined.
                //      example:
                //      |       var success = store.set(kermit, "color", "green");
                throw new Error('Unimplemented API: dojo.data.api.Write.setValue');
                return false; // boolean
        },

        setValues: function(/* item */ item,
                                                /* string */ attribute, 
                                                /* array */ values){
                //      summary:
                //              Adds each value in the *values* array as a value of the given
                //              attribute on the given item.
                //              Replaces any previous value or values.
                //              Calling store.setValues(x, y, []) (with *values* as an empty array) has
                //              the same effect as calling store.unsetAttribute(x, y).
                //
                //      item:
                //              The item to modify.
                //      attribute:
                //              The attribute of the item to change represented as a string name.
                //      values:
                //              An array of values to assign to the attribute..
                //
                //      exceptions:
                //              Throws an exception if *values* is not an array, if *item* is not an
                //              item, or if *attribute* is neither an attribute object or a string.
                //      example:
                //      |       var success = store.setValues(kermit, "color", ["green", "aqua"]);
                //      |       success = store.setValues(kermit, "color", []);
                //      |       if (success) {assert(!store.hasAttribute(kermit, "color"));}
                throw new Error('Unimplemented API: dojo.data.api.Write.setValues');
                return false; // boolean
        },

        unsetAttribute: function(       /* item */ item, 
                                                                /* string */ attribute){
                //      summary:
                //              Deletes all the values of an attribute on an item.
                //
                //      item:
                //              The item to modify.
                //      attribute:
                //              The attribute of the item to unset represented as a string.
                //
                //      exceptions:
                //              Throws an exception if *item* is not an item, or if *attribute*
                //              is neither an attribute object or a string.
                //      example:
                //      |       var success = store.unsetAttribute(kermit, "color");
                //      |       if (success) {assert(!store.hasAttribute(kermit, "color"));}
                throw new Error('Unimplemented API: dojo.data.api.Write.clear');
                return false; // boolean
        },

        save: function(/* object */ keywordArgs){
                //      summary:
                //              Saves to the server all the changes that have been made locally.
                //              The save operation may take some time and is generally performed
                //              in an asynchronous fashion.  The outcome of the save action is 
                //              is passed into the set of supported callbacks for the save.
                //   
                //      keywordArgs:
                //              {
                //                      onComplete: function
                //                      onError: function
                //                      scope: object
                //              }
                //
                //      The *onComplete* parameter.
                //              function();
                //
                //              If an onComplete callback function is provided, the callback function
                //              will be called just once, after the save has completed.  No parameters
                //              are generally passed to the onComplete.
                //
                //      The *onError* parameter.
                //              function(errorData); 
                //
                //              If an onError callback function is provided, the callback function
                //              will be called if there is any sort of error while attempting to
                //              execute the save.  The onError function will be based one parameter, the
                //              error.
                //
                //      The *scope* parameter.
                //              If a scope object is provided, all of the callback function (
                //              onComplete, 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, onComplete.call(scope) vs. 
                //              onComplete.call(dojo.global)
                //
                //      returns:
                //              Nothing.  Since the saves are generally asynchronous, there is 
                //              no need to return anything.  All results are passed via callbacks.
                //      example:
                //      |       store.save({onComplete: onSave});
                //      |       store.save({scope: fooObj, onComplete: onSave, onError: saveFailed});
                throw new Error('Unimplemented API: dojo.data.api.Write.save');
        },

        revert: function(){
                //      summary:
                //              Discards any unsaved changes.
                //      description:
                //              Discards any unsaved changes.
                //
                //      example:
                //      |       var success = store.revert();
                throw new Error('Unimplemented API: dojo.data.api.Write.revert');
                return false; // boolean
        },

        isDirty: function(/* item? */ item){
                //      summary:
                //              Given an item, isDirty() returns true if the item has been modified 
                //              since the last save().  If isDirty() is called with no *item* argument,  
                //              then this function returns true if any item has been modified since
                //              the last save().
                //
                //      item:
                //              The item to check.
                //
                //      exceptions:
                //              Throws an exception if isDirty() is passed an argument and the
                //              argument is not an item.
                //      example:
                //      |       var trueOrFalse = store.isDirty(kermit); // true if kermit is dirty
                //      |       var trueOrFalse = store.isDirty();       // true if any item is dirty
                throw new Error('Unimplemented API: dojo.data.api.Write.isDirty');
                return false; // boolean
        }
});

}