diff options
author | Vitaly Takmazov | 2015-11-04 15:24:53 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2015-11-04 15:25:35 +0300 |
commit | 655b821e274ca4be078389475a8bb33139c55a4f (patch) | |
tree | 6319c4ba8c32bff6e1f4116665ac90b75468d0ad /src/main/java/com/juick/json | |
parent | 5f4602b34ccc3f899edd45e5e541cbb7307c9585 (diff) |
refactoring
Diffstat (limited to 'src/main/java/com/juick/json')
-rw-r--r-- | src/main/java/com/juick/json/JSONSerializer.java | 53 | ||||
-rw-r--r-- | src/main/java/com/juick/json/MessageSerializer.java (renamed from src/main/java/com/juick/json/Message.java) | 18 | ||||
-rw-r--r-- | src/main/java/com/juick/json/Messages.java | 27 | ||||
-rw-r--r-- | src/main/java/com/juick/json/PlaceSerializer.java (renamed from src/main/java/com/juick/json/Place.java) | 12 | ||||
-rw-r--r-- | src/main/java/com/juick/json/UserSerializer.java (renamed from src/main/java/com/juick/json/User.java) | 11 | ||||
-rw-r--r-- | src/main/java/com/juick/json/Users.java | 31 |
6 files changed, 79 insertions, 73 deletions
diff --git a/src/main/java/com/juick/json/JSONSerializer.java b/src/main/java/com/juick/json/JSONSerializer.java new file mode 100644 index 000000000..8ac72cb0a --- /dev/null +++ b/src/main/java/com/juick/json/JSONSerializer.java @@ -0,0 +1,53 @@ +/* + * 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.util.Iterator; +import java.util.List; +import org.json.JSONObject; + +/** + * + * @author vt + * @param <T> + */ +public abstract class JSONSerializer<T> { + + /** + * + * @param json + * @return + */ + public abstract T deserialize(JSONObject json); + + /** + * + * @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; + } +} diff --git a/src/main/java/com/juick/json/Message.java b/src/main/java/com/juick/json/MessageSerializer.java index 4ab1901ad..0879f13aa 100644 --- a/src/main/java/com/juick/json/Message.java +++ b/src/main/java/com/juick/json/MessageSerializer.java @@ -17,6 +17,7 @@ */ package com.juick.json; +import com.juick.Message; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -29,9 +30,13 @@ import org.json.JSONObject; * * @author Ugnich Anton */ -public class Message { +public class MessageSerializer extends JSONSerializer<Message> { + + UserSerializer userSerializer = new UserSerializer(); + PlaceSerializer placeSerializer = new PlaceSerializer(); - public static com.juick.Message parseJSON(JSONObject json) throws JSONException { + @Override + public Message deserialize(JSONObject json) throws JSONException { com.juick.Message jmsg = new com.juick.Message(); jmsg.MID = json.getInt("mid"); if (json.has("rid")) { @@ -45,7 +50,7 @@ public class Message { jmsg.ReadOnly = json.has("readonly"); jmsg.Text = json.getString("body").replace(""", "\""); - jmsg.User = com.juick.json.User.parseJSON(json.getJSONObject("user")); + jmsg.User = userSerializer.deserialize(json.getJSONObject("user")); try { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -72,7 +77,8 @@ public class Message { return jmsg; } - public static JSONObject toJSON(com.juick.Message msg) { + @Override + public JSONObject serialize(Message msg) { JSONObject json = new JSONObject(); try { @@ -100,7 +106,7 @@ public class Message { json.put("timestamp", msg.TimestampString); } if (msg.User != null) { - json.put("user", com.juick.json.User.toJSON(msg.User)); + json.put("user", userSerializer.serialize(msg.User)); } if (msg.Tags != null && msg.Tags.size() > 0) { json.put("tags", new JSONArray(msg.Tags)); @@ -109,7 +115,7 @@ public class Message { json.put("replies", msg.Replies); } if (msg.Place != null) { - json.put("place", com.juick.json.Place.toJSON(msg.Place)); + json.put("place", placeSerializer.serialize(msg.Place)); } if (msg.AttachmentType != null) { String fname = msg.MID + (msg.RID > 0 ? "-" + msg.RID : "") + "." + msg.AttachmentType; diff --git a/src/main/java/com/juick/json/Messages.java b/src/main/java/com/juick/json/Messages.java deleted file mode 100644 index a1879b092..000000000 --- a/src/main/java/com/juick/json/Messages.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.juick.json; - -import java.util.ArrayList; -import java.util.Iterator; - -/** - * - * @author ugnich - */ -public class Messages { - - public static String arrayToString(ArrayList<com.juick.Message> messages) { - String json = "["; - - Iterator<com.juick.Message> i = messages.iterator(); - while (i.hasNext()) { - com.juick.Message m = i.next(); - if (json.length() > 1) { - json += ","; - } - json += Message.toJSON(m).toString(); - } - - json += "]"; - return json; - } -} diff --git a/src/main/java/com/juick/json/Place.java b/src/main/java/com/juick/json/PlaceSerializer.java index f195e7d79..f433f7f07 100644 --- a/src/main/java/com/juick/json/Place.java +++ b/src/main/java/com/juick/json/PlaceSerializer.java @@ -17,7 +17,7 @@ */ package com.juick.json; -import org.json.JSONArray; +import com.juick.Place; import org.json.JSONException; import org.json.JSONObject; @@ -25,10 +25,11 @@ import org.json.JSONObject; * * @author Ugnich Anton */ -public class Place { +public class PlaceSerializer extends JSONSerializer<Place> { - public static com.juick.Place parseJSON(JSONObject json) throws JSONException { - com.juick.Place jplace = new com.juick.Place(); + @Override + public Place deserialize(JSONObject json) throws JSONException { + Place jplace = new Place(); jplace.pid = json.getInt("pid"); jplace.lat = json.getDouble("lat"); @@ -47,7 +48,8 @@ public class Place { return jplace; } - public static JSONObject toJSON(com.juick.Place place) { + @Override + public JSONObject serialize(Place place) { JSONObject json = new JSONObject(); try { diff --git a/src/main/java/com/juick/json/User.java b/src/main/java/com/juick/json/UserSerializer.java index dd3143c6d..07f87616b 100644 --- a/src/main/java/com/juick/json/User.java +++ b/src/main/java/com/juick/json/UserSerializer.java @@ -17,6 +17,7 @@ */ package com.juick.json; +import com.juick.User; import org.json.JSONException; import org.json.JSONObject; @@ -24,10 +25,11 @@ import org.json.JSONObject; * * @author Ugnich Anton */ -public class User { +public class UserSerializer extends JSONSerializer<User> { - public static com.juick.User parseJSON(JSONObject json) throws JSONException { - com.juick.User juser = new com.juick.User(); + @Override + public User deserialize(JSONObject json) throws JSONException { + User juser = new User(); juser.UID = json.getInt("uid"); juser.UName = json.getString("uname"); if (json.has("fullname")) { @@ -36,7 +38,8 @@ public class User { return juser; } - public static JSONObject toJSON(com.juick.User user) { + @Override + public JSONObject serialize(User user) { JSONObject json = new JSONObject(); try { diff --git a/src/main/java/com/juick/json/Users.java b/src/main/java/com/juick/json/Users.java deleted file mode 100644 index 0e486f744..000000000 --- a/src/main/java/com/juick/json/Users.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package com.juick.json; - -import java.util.ArrayList; -import java.util.Iterator; - -/** - * - * @author ugnich - */ -public class Users { - - public static String arrayToString(ArrayList<com.juick.User> users) { - String json = "["; - - Iterator<com.juick.User> i = users.iterator(); - while (i.hasNext()) { - com.juick.User u = i.next(); - if (json.length() > 1) { - json += ","; - } - json += User.toJSON(u).toString(); - } - - json += "]"; - return json; - } -} |