aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/juick/json/JSONSerializer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/juick/json/JSONSerializer.java')
-rw-r--r--src/test/java/com/juick/json/JSONSerializer.java73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/test/java/com/juick/json/JSONSerializer.java b/src/test/java/com/juick/json/JSONSerializer.java
new file mode 100644
index 00000000..3dc9e04e
--- /dev/null
+++ b/src/test/java/com/juick/json/JSONSerializer.java
@@ -0,0 +1,73 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package com.juick.json;
+
+import java.text.ParseException;
+import java.util.Iterator;
+import java.util.List;
+import org.json.JSONObject;
+
+/**
+ *
+ * @author vt
+ * @param <T>
+ */
+public abstract class JSONSerializer<T> {
+
+ public enum URIScheme {
+ Plain,
+ Secure
+ }
+
+ private URIScheme uriScheme;
+
+ public URIScheme getUriScheme() {
+ return uriScheme;
+ }
+
+ public void setUriScheme(URIScheme uriScheme) {
+ this.uriScheme = uriScheme;
+ }
+
+ public JSONSerializer() {
+ this.uriScheme = URIScheme.Plain;
+ }
+
+ /**
+ *
+ * @param json
+ * @return
+ */
+ public abstract T deserialize(JSONObject json) throws ParseException;
+
+ /**
+ *
+ * @param obj
+ * @return
+ */
+ public abstract JSONObject serialize(T obj);
+
+ /**
+ *
+ * @param objs
+ * @return
+ */
+ public String serializeList(List<T> objs) {
+ String json = "[";
+
+ Iterator<T> i = objs.iterator();
+ while (i.hasNext()) {
+ T m = i.next();
+ if (json.length() > 1) {
+ json += ",";
+ }
+ json += serialize(m).toString();
+ }
+
+ json += "]";
+ return json;
+ }
+}