Subversion Repositories Applications.papyrus

Rev

Rev 1318 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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