New file |
0,0 → 1,111 |
/* |
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"); |
dojo.data.old.provider.FlatFile = function (keywordParameters) { |
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); |
dojo.data.old.provider.FlatFile.prototype.getProviderCapabilities = function (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 (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.provider.FlatFile.prototype.getAttribute = function (attributeId) { |
var attribute = (this._dictionaryOfAttributes[attributeId] || null); |
return attribute; |
}; |
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; |
}; |
dojo.data.old.provider.FlatFile.prototype.fetchArray = function (query) { |
return this._arrayOfItems; |
}; |
dojo.data.old.provider.FlatFile.prototype.fetchResultSet = function (query) { |
if (!this._resultSet) { |
this._resultSet = new dojo.data.old.ResultSet(this, this.fetchArray(query)); |
} |
return this._resultSet; |
}; |
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.provider.FlatFile.prototype._newAttribute = function (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.provider.Base.prototype._getResultSets = function () { |
return [this._resultSet]; |
}; |
|