Base.js
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:4k
- /*
- Copyright (c) 2004-2006, The Dojo Foundation
- All Rights Reserved.
- Licensed under the Academic Free License version 2.1 or above OR the
- modified 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 [];
- };