[dojo.data] add Versioning API
Sometime in the future, when we have more time, we should consider adding a dojo.data Versioning API.
Here's some brainstorming about what dojo.data.api.Versioning might look like:
dojo.declare("dojo.data.api.Versioning",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.Versioning': true
};
},
useVersion: function(/* int */ versionNumber){
// summary:
// Sets the datastore so that all the Read API methods will return
// item values as they were at the time of the given version.
// returns:
// Returns true if the given version number exists and the datastore
// is able to return results about items from that version.
// examples:
// store.useVersion(0);
// var lukeSkywalker = store.getItemByIdentity("luke");
// var unknown = store.getValue(lukeSkywalker, "father");
//
// store.useVersion(3);
// var lukeSkywalker = store.getItemByIdentity("luke");
// var darthVader = store.getValue(lukeSkywalker, "father");
dojo.unimplemented('dojo.data.api.Versioning.useVersion');
return false; // boolean
},
getVersionData: function(/* int */ versionNumber){
// summary:
// Given a version number, returns an object with information
// about that version of the data in the datastore -- the version
// info might include the time the version was saved, the user
// who created the version, or other information.
// examples:
// var version = store.getVersionData(32);
// var date = version["createdAtTime"];
// var user = version["createdByUser"];
dojo.unimplemented('dojo.data.api.Versioning.getVersionData');
return versionObject; // Object
},
getLastVersionNumber: function(){
// summary:
// Returns the version number for the most recent version of the
// data.
// examples:
// var lastVersionNumber = store.getLastVersionNumber();
// var lastVersionData = store.getVersionData(lastVersionNumber);
// var user = lastVersionData["createdByUser"];
dojo.unimplemented('dojo.data.api.Versioning.getLastVersionNumber');
return number; // int
}
});
Change History (7)
Owner: |
changed from anonymous to skinner
|
Description: |
modified (diff)
|
Keywords: |
needsreview added
|
Keywords: |
needsreview removed
|
Resolution: |
→ wontfix
|
Status: |
new →
closed
|
Milestone 2.0 deleted