Merge branch 'Jalview-JS/develop' into merge/Ben_trying_out_JSdevelop_with_develop
[jalview.git] / src / jalview / javascript / json / JSON.java
diff --git a/src/jalview/javascript/json/JSON.java b/src/jalview/javascript/json/JSON.java
new file mode 100644 (file)
index 0000000..4e9d1dd
--- /dev/null
@@ -0,0 +1,61 @@
+package jalview.javascript.json;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.net.URL;
+
+/**
+ * 
+ * A rudimentary JSON converter/iterator that uses the browser's native AJAX
+ * json data type delivery mechanism.
+ * 
+ * Arrays are delivered as ArrayList<Object> where Object may be Boolean,
+ * String, Long, Double, ArrayList, and "Map-like object".
+ * 
+ * For speed, the maps returned are just JavaScript maps with a few added
+ * methods for extracting data. [get(), contains(), probably should add keySet,
+ * valueSet, and entrySet].
+ * 
+ * @author hansonr Bob Hanson St. Olaf College 1/24/2019
+ *
+ */
+public class JSON {
+
+       /**
+        * A simple encoding of sequential key/value pairs for a jQuery.ajax call. If
+        * the first key is "url" and the second is an object, then the ajax object is
+        * attached to that url as well, just for transport purposes within the system.
+        * 
+        * @param keyValues assumed to be simple String,Object pairs. String objects
+        *                  will be surrounded by double quotes.
+        */
+       @SuppressWarnings("static-access")
+       public static Object setAjax(Object... keyValues) {
+               return /** @j2sNative swingjs.JSUtil.setAjax$OA(keyValues) || */null;
+       }
+
+       public static void setAjax(URL url) {
+    /** @j2sNative swingjs.JSUtil.setAjax$java_net_URL(url); */
+       }
+
+       public static BufferedReader getJSONReader(InputStream is) {
+               return /** @j2sNative swingjs.JSUtil.getJSONReader$O(is) || */null;
+  }
+
+  /**
+   * 
+   * @param obj
+   *          as String, Reader, InputStream, or JavaScript Object or Array
+   * @return Map or List
+   */
+  public static Object parse(Object obj)
+  {
+    return /** @j2sNative swingjs.JSUtil.parseJSON$O(obj) || */
+    null;
+  }
+
+       public static String stringify(Object obj) {
+               return /** @j2sNative swingjs.JSUtil.stringifyJSON$O(obj) || */null;
+       }
+
+}