You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ko...@apache.org on 2014/06/18 10:07:46 UTC
git commit: [OLINGO-324] modify json.js#jsonParser function
Repository: olingo-odata4-js
Updated Branches:
refs/heads/OLINGO-324 fb0fb593e -> 67c9541a5
[OLINGO-324] modify json.js#jsonParser function
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/commit/67c9541a
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/tree/67c9541a
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/diff/67c9541a
Branch: refs/heads/OLINGO-324
Commit: 67c9541a5353b99f5eccf9cdbe8b5d3b5b647669
Parents: fb0fb59
Author: Sven Kobler <sv...@sap.com>
Authored: Wed Jun 18 10:07:22 2014 +0200
Committer: Sven Kobler <sv...@sap.com>
Committed: Wed Jun 18 10:07:22 2014 +0200
----------------------------------------------------------------------
datajs/src/lib/odata/json.js | 52 ++++++++++++++++++++++++++++++++++-----
1 file changed, 46 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4-js/blob/67c9541a/datajs/src/lib/odata/json.js
----------------------------------------------------------------------
diff --git a/datajs/src/lib/odata/json.js b/datajs/src/lib/odata/json.js
index b273328..28e71fd 100644
--- a/datajs/src/lib/odata/json.js
+++ b/datajs/src/lib/odata/json.js
@@ -249,19 +249,59 @@ var jsonParser = function (handler, text, context) {
var model = context.metadata;
var dataServiceVersion = context.dataServiceVersion;
var json = (typeof text === "string") ? JSON.parse(text) : text;
+ var metadataMap = { none : 0, minimal : 1, full : 2, all : 3 };
- var format = context.formatQueryString;
- if (utils.isArray(context.metadata)) {
+ var payloadFormat = 1;//minmal
+ try {
+ payloadFormat = metadataMap[context.contentType.properties["odata.metadata"]];
+ } catch(err) {
+ payloadFormat = 1;
+ }
- return json;
- } else {
- return jsonLightReadPayload(json, model, recognizeDates, inferJsonLightFeedAsObject, context.contentType.properties['odata.metadata']);
+ var demandedFormat = 1;//minmal
+ try {
+ demandedFormat = metadataMap[context.extendMetadataToLevel];
+ } catch(err) {
+ demandedFormat = 1;
}
+ if ( payloadFormat >= demandedFormat) {
+ if (recognizeDates) {
+ return convertPrimitivetypesGeneric(json,context); //should be fast
+ } else {
+ return json;
+ }
+ } else {
+ if (payloadFormat === 2) { //full, no metadata in context required
+ //insert the missing type information for strings
+ return extendMetadataFromPayload(json,context,recognizeDates);
+ } else if (payloadFormat === 1) { //minmal
+ if (utils.isArray(context.metadata)) {
+ //use context metadata to extend the payload metadata
+ return extendMetadataFromContext(json,context,recognizeDates);
+ } else {
+ //error metadata in context required
+ }
+ } else {
+ // the payload contains no context url only guessing possible
+ return json;
+ }
+ }
-
+ //return jsonLightReadPayload(json, model, recognizeDates, inferJsonLightFeedAsObject, context.contentType.properties['odata.metadata']);
};
+var convertPrimitivetypesGeneric = function(json,context) {
+ return json;
+}
+var extendMetadataFromPayload = function(json,context,recognizeDates) {
+ return json;
+}
+var extendMetadataFromContext = function(json,context,recognizeDates) {
+ return json;
+}
+
+
var jsonToString = function (data) {
/// <summary>Converts the data into a JSON string.</summary>
/// <param name="data">Data to serialize.</param>