Print

Print


Author: [log in to unmask]
Date: Tue Sep  1 18:59:42 2015
New Revision: 3486

Log:
Fixup JSON for adding datasets.

Modified:
    java/trunk/datacat-client/src/main/java/org/hps/datacat/client/JSONUtilities.java

Modified: java/trunk/datacat-client/src/main/java/org/hps/datacat/client/JSONUtilities.java
 =============================================================================
--- java/trunk/datacat-client/src/main/java/org/hps/datacat/client/JSONUtilities.java	(original)
+++ java/trunk/datacat-client/src/main/java/org/hps/datacat/client/JSONUtilities.java	Tue Sep  1 18:59:42 2015
@@ -1,5 +1,6 @@
 package org.hps.datacat.client;
 
+import java.util.HashMap;
 import java.util.Map;
 
 import org.json.JSONArray;
@@ -20,21 +21,37 @@
      * @return the created JSON dataset object
      */
     static JSONObject createJSONDataset(Map<String, Object> parameters, Map<String, Object> metadata) {
+        
         JSONObject dataset = new JSONObject();
         dataset.put("dataType", parameters.get("dataType"));
         dataset.put("versionId", "new");
-        JSONObject location = new JSONObject();
-        location.put("resource", parameters.get("resource"));
-        location.put("site", parameters.get("site"));
-        JSONArray array = new JSONArray();
-        array.put(location);
-        dataset.put("locations", array);                
+        dataset.put("resource", parameters.get("resource"));
+        dataset.put("site", parameters.get("site"));
         dataset.put("fileFormat", parameters.get("fileFormat"));
         dataset.put("name", parameters.get("name"));
-        if (metadata != null) {
-            JSONArray jsonMetadata = createJSONMetadataArray(metadata);
+        
+        Map<String, Object> metadataCopy = new HashMap<String, Object>();
+        metadataCopy.putAll(metadata);
+        
+        // This metadata needs to be set at the top-level and not in versionMetadata.
+        if (metadataCopy.containsKey("runMin")) {
+            dataset.put("runMin", metadataCopy.get("runMin"));
+            metadataCopy.remove("runMin");
+        }
+        if (metadataCopy.containsKey("runMax")) {
+            dataset.put("runMax", metadataCopy.get("runMax"));
+            metadataCopy.remove("runMax");
+        }
+        if (metadataCopy.containsKey("eventCount")) {
+            dataset.put("eventCount", metadataCopy.get("eventCount"));
+            metadataCopy.remove("eventCount");
+        }
+        
+        if (metadata != null && metadata.size() != 0) {
+            JSONArray jsonMetadata = createJSONMetadataArray(metadataCopy);
             dataset.put("versionMetadata", jsonMetadata);
         }
+        
         return dataset;
     }
     
@@ -62,7 +79,6 @@
         JSONArray array = new JSONArray();
         for (Map.Entry<String, Object> entry : metadata.entrySet()) {
             JSONObject metadataObject = new JSONObject();
-            metadataObject.put(entry.getKey(), entry.getValue());
             metadataObject.put("key", entry.getKey());
             Object rawValue = entry.getValue();
             if (rawValue instanceof String) {