Subversion Repositories Applications.papyrus

Rev

Rev 1318 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1318 alexandre_ 1
/*
2
	Copyright (c) 2004-2006, The Dojo Foundation
3
	All Rights Reserved.
4
 
5
	Licensed under the Academic Free License version 2.1 or above OR the
6
	modified BSD license. For more information on Dojo licensing, see:
7
 
8
		http://dojotoolkit.org/community/licensing.shtml
9
*/
10
 
1422 alexandre_ 11
 
12
 
1318 alexandre_ 13
dojo.provide("dojo.data.old.format.Json");
14
dojo.require("dojo.lang.assert");
15
dojo.data.old.format.Json = new function () {
16
	this.loadDataProviderFromFileContents = function (dataProvider, jsonFileContents) {
17
		dojo.lang.assertType(dataProvider, dojo.data.old.provider.Base);
18
		dojo.lang.assertType(jsonFileContents, String);
19
		var arrayOfJsonData = eval("(" + jsonFileContents + ")");
20
		this.loadDataProviderFromArrayOfJsonData(dataProvider, arrayOfJsonData);
21
	};
22
	this.loadDataProviderFromArrayOfJsonData = function (dataProvider, arrayOfJsonData) {
23
		dojo.lang.assertType(arrayOfJsonData, Array, {optional:true});
24
		if (arrayOfJsonData && (arrayOfJsonData.length > 0)) {
25
			var firstRow = arrayOfJsonData[0];
26
			dojo.lang.assertType(firstRow, [Array, "pureobject"]);
27
			if (dojo.lang.isArray(firstRow)) {
28
				_loadDataProviderFromArrayOfArrays(dataProvider, arrayOfJsonData);
29
			} else {
30
				dojo.lang.assertType(firstRow, "pureobject");
31
				_loadDataProviderFromArrayOfObjects(dataProvider, arrayOfJsonData);
32
			}
33
		}
34
	};
35
	this.getJsonStringFromResultSet = function (resultSet) {
36
		dojo.unimplemented("dojo.data.old.format.Json.getJsonStringFromResultSet");
37
		var jsonString = null;
38
		return jsonString;
39
	};
40
	function _loadDataProviderFromArrayOfArrays(dataProvider, arrayOfJsonData) {
41
		var arrayOfKeys = arrayOfJsonData[0];
42
		for (var i = 1; i < arrayOfJsonData.length; ++i) {
43
			var row = arrayOfJsonData[i];
44
			var item = dataProvider.getNewItemToLoad();
45
			for (var j in row) {
46
				var value = row[j];
47
				var key = arrayOfKeys[j];
48
				item.load(key, value);
49
			}
50
		}
51
	}
52
	function _loadDataProviderFromArrayOfObjects(dataProvider, arrayOfJsonData) {
53
		for (var i in arrayOfJsonData) {
54
			var row = arrayOfJsonData[i];
55
			var item = dataProvider.getNewItemToLoad();
56
			for (var key in row) {
57
				var value = row[key];
58
				if (dojo.lang.isArray(value)) {
59
					var arrayOfValues = value;
60
					for (var j in arrayOfValues) {
61
						value = arrayOfValues[j];
62
						item.load(key, value);
63
					}
64
				} else {
65
					item.load(key, value);
66
				}
67
			}
68
		}
69
	}
70
}();
71