Rev 1318 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*Copyright (c) 2004-2006, The Dojo FoundationAll Rights Reserved.Licensed under the Academic Free License version 2.1 or above OR themodified BSD license. For more information on Dojo licensing, see:http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.data.old.provider.Base");dojo.require("dojo.lang.assert");dojo.data.old.provider.Base = function () {this._countOfNestedTransactions = 0;this._changesInCurrentTransaction = null;};dojo.data.old.provider.Base.prototype.beginTransaction = function () {if (this._countOfNestedTransactions === 0) {this._changesInCurrentTransaction = [];}this._countOfNestedTransactions += 1;};dojo.data.old.provider.Base.prototype.endTransaction = function () {this._countOfNestedTransactions -= 1;dojo.lang.assert(this._countOfNestedTransactions >= 0);if (this._countOfNestedTransactions === 0) {var listOfChangesMade = this._saveChanges();this._changesInCurrentTransaction = null;if (listOfChangesMade.length > 0) {this._notifyObserversOfChanges(listOfChangesMade);}}};dojo.data.old.provider.Base.prototype.getNewItemToLoad = function () {return this._newItem();};dojo.data.old.provider.Base.prototype.newItem = function (itemName) {dojo.lang.assertType(itemName, String, {optional:true});var item = this._newItem();if (itemName) {item.set("name", itemName);}return item;};dojo.data.old.provider.Base.prototype.newAttribute = function (attributeId) {dojo.lang.assertType(attributeId, String, {optional:true});var attribute = this._newAttribute(attributeId);return attribute;};dojo.data.old.provider.Base.prototype.getAttribute = function (attributeId) {dojo.unimplemented("dojo.data.old.provider.Base");var attribute;return attribute;};dojo.data.old.provider.Base.prototype.getAttributes = function () {dojo.unimplemented("dojo.data.old.provider.Base");return this._arrayOfAttributes;};dojo.data.old.provider.Base.prototype.fetchArray = function () {dojo.unimplemented("dojo.data.old.provider.Base");return [];};dojo.data.old.provider.Base.prototype.fetchResultSet = function () {dojo.unimplemented("dojo.data.old.provider.Base");var resultSet;return resultSet;};dojo.data.old.provider.Base.prototype.noteChange = function (item, attribute, value) {var change = {item:item, attribute:attribute, value:value};if (this._countOfNestedTransactions === 0) {this.beginTransaction();this._changesInCurrentTransaction.push(change);this.endTransaction();} else {this._changesInCurrentTransaction.push(change);}};dojo.data.old.provider.Base.prototype.addItemObserver = function (item, observer) {dojo.lang.assertType(item, dojo.data.old.Item);item.addObserver(observer);};dojo.data.old.provider.Base.prototype.removeItemObserver = function (item, observer) {dojo.lang.assertType(item, dojo.data.old.Item);item.removeObserver(observer);};dojo.data.old.provider.Base.prototype._newItem = function () {var item = new dojo.data.old.Item(this);return item;};dojo.data.old.provider.Base.prototype._newAttribute = function (attributeId) {var attribute = new dojo.data.old.Attribute(this);return attribute;};dojo.data.old.provider.Base.prototype._saveChanges = function () {var arrayOfChangesMade = this._changesInCurrentTransaction;return arrayOfChangesMade;};dojo.data.old.provider.Base.prototype._notifyObserversOfChanges = function (arrayOfChanges) {var arrayOfResultSets = this._getResultSets();for (var i in arrayOfChanges) {var change = arrayOfChanges[i];var changedItem = change.item;var arrayOfItemObservers = changedItem.getObservers();for (var j in arrayOfItemObservers) {var observer = arrayOfItemObservers[j];observer.observedObjectHasChanged(changedItem, change);}for (var k in arrayOfResultSets) {var resultSet = arrayOfResultSets[k];var arrayOfResultSetObservers = resultSet.getObservers();for (var m in arrayOfResultSetObservers) {observer = arrayOfResultSetObservers[m];observer.observedObjectHasChanged(resultSet, change);}}}};dojo.data.old.provider.Base.prototype._getResultSets = function () {dojo.unimplemented("dojo.data.old.provider.Base");return [];};