📄 flatfile.js
字号:
/* 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.FlatFile");dojo.require("dojo.data.old.provider.Base");dojo.require("dojo.data.old.Item");dojo.require("dojo.data.old.Attribute");dojo.require("dojo.data.old.ResultSet");dojo.require("dojo.data.old.format.Json");dojo.require("dojo.data.old.format.Csv");dojo.require("dojo.lang.assert");// -------------------------------------------------------------------// Constructor// -------------------------------------------------------------------dojo.data.old.provider.FlatFile = function(/* keywords */ keywordParameters) { /** * summary: * A Json Data Provider knows how to read in simple JSON data * tables and make their contents accessable as Items. */ dojo.lang.assertType(keywordParameters, "pureobject", {optional: true}); dojo.data.old.provider.Base.call(this); this._arrayOfItems = []; this._resultSet = null; this._dictionaryOfAttributes = {}; if (keywordParameters) { var jsonObjects = keywordParameters["jsonObjects"]; var jsonString = keywordParameters["jsonString"]; var fileUrl = keywordParameters["url"]; if (jsonObjects) { dojo.data.old.format.Json.loadDataProviderFromArrayOfJsonData(this, jsonObjects); } if (jsonString) { dojo.data.old.format.Json.loadDataProviderFromFileContents(this, jsonString); } if (fileUrl) { var arrayOfParts = fileUrl.split('.'); var lastPart = arrayOfParts[(arrayOfParts.length - 1)]; var formatParser = null; if (lastPart == "json") { formatParser = dojo.data.old.format.Json; } if (lastPart == "csv") { formatParser = dojo.data.old.format.Csv; } if (formatParser) { var fileContents = dojo.hostenv.getText(fileUrl); formatParser.loadDataProviderFromFileContents(this, fileContents); } else { dojo.lang.assert(false, "new dojo.data.old.provider.FlatFile({url: }) was passed a file without a .csv or .json suffix"); } } }};dojo.inherits(dojo.data.old.provider.FlatFile, dojo.data.old.provider.Base);// -------------------------------------------------------------------// Public instance methods// -------------------------------------------------------------------dojo.data.old.provider.FlatFile.prototype.getProviderCapabilities = function(/* string */ keyword) { dojo.lang.assertType(keyword, String, {optional: true}); if (!this._ourCapabilities) { this._ourCapabilities = { transactions: false, undo: false, login: false, versioning: false, anonymousRead: true, anonymousWrite: false, permissions: false, queries: false, strongTyping: false, datatypes: [String, Date, Number] }; } if (keyword) { return this._ourCapabilities[keyword]; } else { return this._ourCapabilities; }};dojo.data.old.provider.FlatFile.prototype.registerAttribute = function(/* string or dojo.data.old.Attribute */ attributeId) { var registeredAttribute = this.getAttribute(attributeId); if (!registeredAttribute) { var newAttribute = new dojo.data.old.Attribute(this, attributeId); this._dictionaryOfAttributes[attributeId] = newAttribute; registeredAttribute = newAttribute; } return registeredAttribute; // dojo.data.old.Attribute};dojo.data.old.provider.FlatFile.prototype.getAttribute = function(/* string or dojo.data.old.Attribute */ attributeId) { var attribute = (this._dictionaryOfAttributes[attributeId] || null); return attribute; // dojo.data.old.Attribute or null};dojo.data.old.provider.FlatFile.prototype.getAttributes = function() { var arrayOfAttributes = []; for (var key in this._dictionaryOfAttributes) { var attribute = this._dictionaryOfAttributes[key]; arrayOfAttributes.push(attribute); } return arrayOfAttributes; // Array};dojo.data.old.provider.FlatFile.prototype.fetchArray = function(query) { /** * summary: Returns an Array containing all of the Items. */ return this._arrayOfItems; // Array};dojo.data.old.provider.FlatFile.prototype.fetchResultSet = function(query) { /** * summary: Returns a ResultSet containing all of the Items. */ if (!this._resultSet) { this._resultSet = new dojo.data.old.ResultSet(this, this.fetchArray(query)); } return this._resultSet; // dojo.data.old.ResultSet};// -------------------------------------------------------------------// Private instance methods// -------------------------------------------------------------------dojo.data.old.provider.FlatFile.prototype._newItem = function() { var item = new dojo.data.old.Item(this); this._arrayOfItems.push(item); return item; // dojo.data.old.Item};dojo.data.old.provider.FlatFile.prototype._newAttribute = function(/* String */ attributeId) { dojo.lang.assertType(attributeId, String); dojo.lang.assert(this.getAttribute(attributeId) === null); var attribute = new dojo.data.old.Attribute(this, attributeId); this._dictionaryOfAttributes[attributeId] = attribute; return attribute; // dojo.data.old.Attribute};dojo.data.old.provider.Base.prototype._getResultSets = function() { return [this._resultSet]; // Array};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -