From 5f4602b34ccc3f899edd45e5e541cbb7307c9585 Mon Sep 17 00:00:00 2001
From: Vitaly Takmazov
Date: Sat, 31 Oct 2015 01:35:22 +0300
Subject: moved to Gradle
---
src/main/java/com/juick/json/Message.java | 127 +++++++++++++++++++++++++++++
src/main/java/com/juick/json/Messages.java | 27 ++++++
src/main/java/com/juick/json/Place.java | 71 ++++++++++++++++
src/main/java/com/juick/json/User.java | 63 ++++++++++++++
src/main/java/com/juick/json/Users.java | 31 +++++++
5 files changed, 319 insertions(+)
create mode 100644 src/main/java/com/juick/json/Message.java
create mode 100644 src/main/java/com/juick/json/Messages.java
create mode 100644 src/main/java/com/juick/json/Place.java
create mode 100644 src/main/java/com/juick/json/User.java
create mode 100644 src/main/java/com/juick/json/Users.java
(limited to 'src/main/java')
diff --git a/src/main/java/com/juick/json/Message.java b/src/main/java/com/juick/json/Message.java
new file mode 100644
index 00000000..4ab1901a
--- /dev/null
+++ b/src/main/java/com/juick/json/Message.java
@@ -0,0 +1,127 @@
+/*
+ * Juick
+ * Copyright (C) 2008-2011, Ugnich Anton
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+package com.juick.json;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ *
+ * @author Ugnich Anton
+ */
+public class Message {
+
+ public static com.juick.Message parseJSON(JSONObject json) throws JSONException {
+ com.juick.Message jmsg = new com.juick.Message();
+ jmsg.MID = json.getInt("mid");
+ if (json.has("rid")) {
+ jmsg.RID = json.getInt("rid");
+ }
+ if (json.has("replyto")) {
+ jmsg.ReplyTo = json.getInt("replyto");
+ }
+
+ jmsg.FriendsOnly = json.has("friendsonly");
+ jmsg.ReadOnly = json.has("readonly");
+
+ jmsg.Text = json.getString("body").replace(""", "\"");
+ jmsg.User = com.juick.json.User.parseJSON(json.getJSONObject("user"));
+
+ try {
+ DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ df.setTimeZone(TimeZone.getTimeZone("UTC"));
+ jmsg.Timestamp = df.parse(json.getString("timestamp"));
+ } catch (ParseException e) {
+ }
+
+ if (json.has("tags")) {
+ JSONArray tags = json.getJSONArray("tags");
+ for (int n = 0; n < tags.length(); n++) {
+ jmsg.Tags.add(tags.getString(n).replace(""", "\""));
+ }
+ }
+
+ if (json.has("replies")) {
+ jmsg.Replies = json.getInt("replies");
+ }
+
+ if (json.has("photo")) {
+ jmsg.Photo = json.getJSONObject("photo").getString("small");
+ }
+
+ return jmsg;
+ }
+
+ public static JSONObject toJSON(com.juick.Message msg) {
+ JSONObject json = new JSONObject();
+
+ try {
+ if (msg.MID > 0) {
+ json.put("mid", msg.MID);
+ }
+ if (msg.RID > 0) {
+ json.put("rid", msg.RID);
+ }
+ if (msg.ReplyTo > 0) {
+ json.put("replyto", msg.ReplyTo);
+ }
+ if (msg.FriendsOnly) {
+ json.put("friendsonly", 1);
+ }
+ if (msg.ReadOnly) {
+ json.put("readonly", 1);
+ }
+ if (msg.Text != null) {
+ json.put("body", msg.Text);
+ }
+ if (msg.Timestamp != null) {
+ json.put("timestamp", msg.Timestamp);
+ } else if (msg.TimestampString != null) {
+ json.put("timestamp", msg.TimestampString);
+ }
+ if (msg.User != null) {
+ json.put("user", com.juick.json.User.toJSON(msg.User));
+ }
+ if (msg.Tags != null && msg.Tags.size() > 0) {
+ json.put("tags", new JSONArray(msg.Tags));
+ }
+ if (msg.Replies > 0) {
+ json.put("replies", msg.Replies);
+ }
+ if (msg.Place != null) {
+ json.put("place", com.juick.json.Place.toJSON(msg.Place));
+ }
+ if (msg.AttachmentType != null) {
+ String fname = msg.MID + (msg.RID > 0 ? "-" + msg.RID : "") + "." + msg.AttachmentType;
+ JSONObject photo = new JSONObject();
+ photo.put("thumbnail", "http://i.juick.com/ps/" + fname);
+ photo.put("small", "http://i.juick.com/photos-512/" + fname);
+ photo.put("medium", "http://i.juick.com/photos-1024/" + fname);
+ json.put("photo", photo);
+ }
+ } catch (JSONException e) {
+ }
+
+ return json;
+ }
+}
diff --git a/src/main/java/com/juick/json/Messages.java b/src/main/java/com/juick/json/Messages.java
new file mode 100644
index 00000000..a1879b09
--- /dev/null
+++ b/src/main/java/com/juick/json/Messages.java
@@ -0,0 +1,27 @@
+package com.juick.json;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+/**
+ *
+ * @author ugnich
+ */
+public class Messages {
+
+ public static String arrayToString(ArrayList messages) {
+ String json = "[";
+
+ Iterator 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/Place.java
new file mode 100644
index 00000000..f195e7d7
--- /dev/null
+++ b/src/main/java/com/juick/json/Place.java
@@ -0,0 +1,71 @@
+/*
+ * Juick
+ * Copyright (C) 2008-2011, Ugnich Anton
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+package com.juick.json;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ *
+ * @author Ugnich Anton
+ */
+public class Place {
+
+ public static com.juick.Place parseJSON(JSONObject json) throws JSONException {
+ com.juick.Place jplace = new com.juick.Place();
+
+ jplace.pid = json.getInt("pid");
+ jplace.lat = json.getDouble("lat");
+ jplace.lon = json.getDouble("lon");
+ jplace.name = json.getString("name").replace(""", "\"");
+ if (json.has("users")) {
+ jplace.users = json.getInt("users");
+ }
+ if (json.has("messages")) {
+ jplace.messages = json.getInt("messages");
+ }
+ if (json.has("distance")) {
+ jplace.distance = json.getInt("distance");
+ }
+
+ return jplace;
+ }
+
+ public static JSONObject toJSON(com.juick.Place place) {
+ JSONObject json = new JSONObject();
+
+ try {
+ if (place.pid > 0) {
+ json.put("pid", place.pid);
+ }
+ if (place.lat >= -90 && place.lat <= 90) {
+ json.put("lat", place.lat);
+ }
+ if (place.lon >= -180 && place.lon <= 180) {
+ json.put("lon", place.lon);
+ }
+ if (place.name != null) {
+ json.put("name", place.name);
+ }
+ } catch (JSONException e) {
+ }
+
+ return json;
+ }
+}
diff --git a/src/main/java/com/juick/json/User.java b/src/main/java/com/juick/json/User.java
new file mode 100644
index 00000000..dd3143c6
--- /dev/null
+++ b/src/main/java/com/juick/json/User.java
@@ -0,0 +1,63 @@
+/*
+ * Juick
+ * Copyright (C) 2008-2011, Ugnich Anton
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+package com.juick.json;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ *
+ * @author Ugnich Anton
+ */
+public class User {
+
+ public static com.juick.User parseJSON(JSONObject json) throws JSONException {
+ com.juick.User juser = new com.juick.User();
+ juser.UID = json.getInt("uid");
+ juser.UName = json.getString("uname");
+ if (json.has("fullname")) {
+ juser.FullName = json.getString("fullname");
+ }
+ return juser;
+ }
+
+ public static JSONObject toJSON(com.juick.User user) {
+ JSONObject json = new JSONObject();
+
+ try {
+ if (user.UID > 0) {
+ json.put("uid", user.UID);
+ }
+ if (user.UName != null) {
+ json.put("uname", user.UName);
+ }
+ if (user.FullName != null) {
+ json.put("fullname", user.FullName);
+ }
+ if (user.JID != null) {
+ json.put("jid", user.JID);
+ }
+ if (user.MessagesCount > 0) {
+ json.put("MessagesCount", user.MessagesCount);
+ }
+ } catch (JSONException e) {
+ }
+
+ return json;
+ }
+}
diff --git a/src/main/java/com/juick/json/Users.java b/src/main/java/com/juick/json/Users.java
new file mode 100644
index 00000000..0e486f74
--- /dev/null
+++ b/src/main/java/com/juick/json/Users.java
@@ -0,0 +1,31 @@
+/*
+ * 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 users) {
+ String json = "[";
+
+ Iterator 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;
+ }
+}
--
cgit v1.2.3
From 655b821e274ca4be078389475a8bb33139c55a4f Mon Sep 17 00:00:00 2001
From: Vitaly Takmazov
Date: Wed, 4 Nov 2015 15:24:53 +0300
Subject: refactoring
---
build.gradle | 2 +-
src/main/java/com/juick/json/JSONSerializer.java | 53 ++++++++
src/main/java/com/juick/json/Message.java | 127 --------------------
.../java/com/juick/json/MessageSerializer.java | 133 +++++++++++++++++++++
src/main/java/com/juick/json/Messages.java | 27 -----
src/main/java/com/juick/json/Place.java | 71 -----------
src/main/java/com/juick/json/PlaceSerializer.java | 73 +++++++++++
src/main/java/com/juick/json/User.java | 63 ----------
src/main/java/com/juick/json/UserSerializer.java | 66 ++++++++++
src/main/java/com/juick/json/Users.java | 31 -----
10 files changed, 326 insertions(+), 320 deletions(-)
create mode 100644 src/main/java/com/juick/json/JSONSerializer.java
delete mode 100644 src/main/java/com/juick/json/Message.java
create mode 100644 src/main/java/com/juick/json/MessageSerializer.java
delete mode 100644 src/main/java/com/juick/json/Messages.java
delete mode 100644 src/main/java/com/juick/json/Place.java
create mode 100644 src/main/java/com/juick/json/PlaceSerializer.java
delete mode 100644 src/main/java/com/juick/json/User.java
create mode 100644 src/main/java/com/juick/json/UserSerializer.java
delete mode 100644 src/main/java/com/juick/json/Users.java
(limited to 'src/main/java')
diff --git a/build.gradle b/build.gradle
index 483a3727..a8ba383f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,5 +5,5 @@ repositories {
}
dependencies {
- compile 'org.json:json:20140107'
+ compile 'org.json:json:20150729'
}
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 00000000..8ac72cb0
--- /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
+ */
+public abstract class JSONSerializer {
+
+ /**
+ *
+ * @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 objs) {
+ String json = "[";
+
+ Iterator 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/Message.java
deleted file mode 100644
index 4ab1901a..00000000
--- a/src/main/java/com/juick/json/Message.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Juick
- * Copyright (C) 2008-2011, Ugnich Anton
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- */
-package com.juick.json;
-
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-/**
- *
- * @author Ugnich Anton
- */
-public class Message {
-
- public static com.juick.Message parseJSON(JSONObject json) throws JSONException {
- com.juick.Message jmsg = new com.juick.Message();
- jmsg.MID = json.getInt("mid");
- if (json.has("rid")) {
- jmsg.RID = json.getInt("rid");
- }
- if (json.has("replyto")) {
- jmsg.ReplyTo = json.getInt("replyto");
- }
-
- jmsg.FriendsOnly = json.has("friendsonly");
- jmsg.ReadOnly = json.has("readonly");
-
- jmsg.Text = json.getString("body").replace(""", "\"");
- jmsg.User = com.juick.json.User.parseJSON(json.getJSONObject("user"));
-
- try {
- DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- df.setTimeZone(TimeZone.getTimeZone("UTC"));
- jmsg.Timestamp = df.parse(json.getString("timestamp"));
- } catch (ParseException e) {
- }
-
- if (json.has("tags")) {
- JSONArray tags = json.getJSONArray("tags");
- for (int n = 0; n < tags.length(); n++) {
- jmsg.Tags.add(tags.getString(n).replace(""", "\""));
- }
- }
-
- if (json.has("replies")) {
- jmsg.Replies = json.getInt("replies");
- }
-
- if (json.has("photo")) {
- jmsg.Photo = json.getJSONObject("photo").getString("small");
- }
-
- return jmsg;
- }
-
- public static JSONObject toJSON(com.juick.Message msg) {
- JSONObject json = new JSONObject();
-
- try {
- if (msg.MID > 0) {
- json.put("mid", msg.MID);
- }
- if (msg.RID > 0) {
- json.put("rid", msg.RID);
- }
- if (msg.ReplyTo > 0) {
- json.put("replyto", msg.ReplyTo);
- }
- if (msg.FriendsOnly) {
- json.put("friendsonly", 1);
- }
- if (msg.ReadOnly) {
- json.put("readonly", 1);
- }
- if (msg.Text != null) {
- json.put("body", msg.Text);
- }
- if (msg.Timestamp != null) {
- json.put("timestamp", msg.Timestamp);
- } else if (msg.TimestampString != null) {
- json.put("timestamp", msg.TimestampString);
- }
- if (msg.User != null) {
- json.put("user", com.juick.json.User.toJSON(msg.User));
- }
- if (msg.Tags != null && msg.Tags.size() > 0) {
- json.put("tags", new JSONArray(msg.Tags));
- }
- if (msg.Replies > 0) {
- json.put("replies", msg.Replies);
- }
- if (msg.Place != null) {
- json.put("place", com.juick.json.Place.toJSON(msg.Place));
- }
- if (msg.AttachmentType != null) {
- String fname = msg.MID + (msg.RID > 0 ? "-" + msg.RID : "") + "." + msg.AttachmentType;
- JSONObject photo = new JSONObject();
- photo.put("thumbnail", "http://i.juick.com/ps/" + fname);
- photo.put("small", "http://i.juick.com/photos-512/" + fname);
- photo.put("medium", "http://i.juick.com/photos-1024/" + fname);
- json.put("photo", photo);
- }
- } catch (JSONException e) {
- }
-
- return json;
- }
-}
diff --git a/src/main/java/com/juick/json/MessageSerializer.java b/src/main/java/com/juick/json/MessageSerializer.java
new file mode 100644
index 00000000..0879f13a
--- /dev/null
+++ b/src/main/java/com/juick/json/MessageSerializer.java
@@ -0,0 +1,133 @@
+/*
+ * Juick
+ * Copyright (C) 2008-2011, Ugnich Anton
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+package com.juick.json;
+
+import com.juick.Message;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ *
+ * @author Ugnich Anton
+ */
+public class MessageSerializer extends JSONSerializer {
+
+ UserSerializer userSerializer = new UserSerializer();
+ PlaceSerializer placeSerializer = new PlaceSerializer();
+
+ @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")) {
+ jmsg.RID = json.getInt("rid");
+ }
+ if (json.has("replyto")) {
+ jmsg.ReplyTo = json.getInt("replyto");
+ }
+
+ jmsg.FriendsOnly = json.has("friendsonly");
+ jmsg.ReadOnly = json.has("readonly");
+
+ jmsg.Text = json.getString("body").replace(""", "\"");
+ jmsg.User = userSerializer.deserialize(json.getJSONObject("user"));
+
+ try {
+ DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ df.setTimeZone(TimeZone.getTimeZone("UTC"));
+ jmsg.Timestamp = df.parse(json.getString("timestamp"));
+ } catch (ParseException e) {
+ }
+
+ if (json.has("tags")) {
+ JSONArray tags = json.getJSONArray("tags");
+ for (int n = 0; n < tags.length(); n++) {
+ jmsg.Tags.add(tags.getString(n).replace(""", "\""));
+ }
+ }
+
+ if (json.has("replies")) {
+ jmsg.Replies = json.getInt("replies");
+ }
+
+ if (json.has("photo")) {
+ jmsg.Photo = json.getJSONObject("photo").getString("small");
+ }
+
+ return jmsg;
+ }
+
+ @Override
+ public JSONObject serialize(Message msg) {
+ JSONObject json = new JSONObject();
+
+ try {
+ if (msg.MID > 0) {
+ json.put("mid", msg.MID);
+ }
+ if (msg.RID > 0) {
+ json.put("rid", msg.RID);
+ }
+ if (msg.ReplyTo > 0) {
+ json.put("replyto", msg.ReplyTo);
+ }
+ if (msg.FriendsOnly) {
+ json.put("friendsonly", 1);
+ }
+ if (msg.ReadOnly) {
+ json.put("readonly", 1);
+ }
+ if (msg.Text != null) {
+ json.put("body", msg.Text);
+ }
+ if (msg.Timestamp != null) {
+ json.put("timestamp", msg.Timestamp);
+ } else if (msg.TimestampString != null) {
+ json.put("timestamp", msg.TimestampString);
+ }
+ if (msg.User != null) {
+ json.put("user", userSerializer.serialize(msg.User));
+ }
+ if (msg.Tags != null && msg.Tags.size() > 0) {
+ json.put("tags", new JSONArray(msg.Tags));
+ }
+ if (msg.Replies > 0) {
+ json.put("replies", msg.Replies);
+ }
+ if (msg.Place != null) {
+ json.put("place", placeSerializer.serialize(msg.Place));
+ }
+ if (msg.AttachmentType != null) {
+ String fname = msg.MID + (msg.RID > 0 ? "-" + msg.RID : "") + "." + msg.AttachmentType;
+ JSONObject photo = new JSONObject();
+ photo.put("thumbnail", "http://i.juick.com/ps/" + fname);
+ photo.put("small", "http://i.juick.com/photos-512/" + fname);
+ photo.put("medium", "http://i.juick.com/photos-1024/" + fname);
+ json.put("photo", photo);
+ }
+ } catch (JSONException e) {
+ }
+
+ return json;
+ }
+}
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 a1879b09..00000000
--- 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 messages) {
- String json = "[";
-
- Iterator 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/Place.java
deleted file mode 100644
index f195e7d7..00000000
--- a/src/main/java/com/juick/json/Place.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Juick
- * Copyright (C) 2008-2011, Ugnich Anton
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- */
-package com.juick.json;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-/**
- *
- * @author Ugnich Anton
- */
-public class Place {
-
- public static com.juick.Place parseJSON(JSONObject json) throws JSONException {
- com.juick.Place jplace = new com.juick.Place();
-
- jplace.pid = json.getInt("pid");
- jplace.lat = json.getDouble("lat");
- jplace.lon = json.getDouble("lon");
- jplace.name = json.getString("name").replace(""", "\"");
- if (json.has("users")) {
- jplace.users = json.getInt("users");
- }
- if (json.has("messages")) {
- jplace.messages = json.getInt("messages");
- }
- if (json.has("distance")) {
- jplace.distance = json.getInt("distance");
- }
-
- return jplace;
- }
-
- public static JSONObject toJSON(com.juick.Place place) {
- JSONObject json = new JSONObject();
-
- try {
- if (place.pid > 0) {
- json.put("pid", place.pid);
- }
- if (place.lat >= -90 && place.lat <= 90) {
- json.put("lat", place.lat);
- }
- if (place.lon >= -180 && place.lon <= 180) {
- json.put("lon", place.lon);
- }
- if (place.name != null) {
- json.put("name", place.name);
- }
- } catch (JSONException e) {
- }
-
- return json;
- }
-}
diff --git a/src/main/java/com/juick/json/PlaceSerializer.java b/src/main/java/com/juick/json/PlaceSerializer.java
new file mode 100644
index 00000000..f433f7f0
--- /dev/null
+++ b/src/main/java/com/juick/json/PlaceSerializer.java
@@ -0,0 +1,73 @@
+/*
+ * Juick
+ * Copyright (C) 2008-2011, Ugnich Anton
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+package com.juick.json;
+
+import com.juick.Place;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ *
+ * @author Ugnich Anton
+ */
+public class PlaceSerializer extends JSONSerializer {
+
+ @Override
+ public Place deserialize(JSONObject json) throws JSONException {
+ Place jplace = new Place();
+
+ jplace.pid = json.getInt("pid");
+ jplace.lat = json.getDouble("lat");
+ jplace.lon = json.getDouble("lon");
+ jplace.name = json.getString("name").replace(""", "\"");
+ if (json.has("users")) {
+ jplace.users = json.getInt("users");
+ }
+ if (json.has("messages")) {
+ jplace.messages = json.getInt("messages");
+ }
+ if (json.has("distance")) {
+ jplace.distance = json.getInt("distance");
+ }
+
+ return jplace;
+ }
+
+ @Override
+ public JSONObject serialize(Place place) {
+ JSONObject json = new JSONObject();
+
+ try {
+ if (place.pid > 0) {
+ json.put("pid", place.pid);
+ }
+ if (place.lat >= -90 && place.lat <= 90) {
+ json.put("lat", place.lat);
+ }
+ if (place.lon >= -180 && place.lon <= 180) {
+ json.put("lon", place.lon);
+ }
+ if (place.name != null) {
+ json.put("name", place.name);
+ }
+ } catch (JSONException e) {
+ }
+
+ return json;
+ }
+}
diff --git a/src/main/java/com/juick/json/User.java b/src/main/java/com/juick/json/User.java
deleted file mode 100644
index dd3143c6..00000000
--- a/src/main/java/com/juick/json/User.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Juick
- * Copyright (C) 2008-2011, Ugnich Anton
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- */
-package com.juick.json;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-/**
- *
- * @author Ugnich Anton
- */
-public class User {
-
- public static com.juick.User parseJSON(JSONObject json) throws JSONException {
- com.juick.User juser = new com.juick.User();
- juser.UID = json.getInt("uid");
- juser.UName = json.getString("uname");
- if (json.has("fullname")) {
- juser.FullName = json.getString("fullname");
- }
- return juser;
- }
-
- public static JSONObject toJSON(com.juick.User user) {
- JSONObject json = new JSONObject();
-
- try {
- if (user.UID > 0) {
- json.put("uid", user.UID);
- }
- if (user.UName != null) {
- json.put("uname", user.UName);
- }
- if (user.FullName != null) {
- json.put("fullname", user.FullName);
- }
- if (user.JID != null) {
- json.put("jid", user.JID);
- }
- if (user.MessagesCount > 0) {
- json.put("MessagesCount", user.MessagesCount);
- }
- } catch (JSONException e) {
- }
-
- return json;
- }
-}
diff --git a/src/main/java/com/juick/json/UserSerializer.java b/src/main/java/com/juick/json/UserSerializer.java
new file mode 100644
index 00000000..07f87616
--- /dev/null
+++ b/src/main/java/com/juick/json/UserSerializer.java
@@ -0,0 +1,66 @@
+/*
+ * Juick
+ * Copyright (C) 2008-2011, Ugnich Anton
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+package com.juick.json;
+
+import com.juick.User;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ *
+ * @author Ugnich Anton
+ */
+public class UserSerializer extends JSONSerializer {
+
+ @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")) {
+ juser.FullName = json.getString("fullname");
+ }
+ return juser;
+ }
+
+ @Override
+ public JSONObject serialize(User user) {
+ JSONObject json = new JSONObject();
+
+ try {
+ if (user.UID > 0) {
+ json.put("uid", user.UID);
+ }
+ if (user.UName != null) {
+ json.put("uname", user.UName);
+ }
+ if (user.FullName != null) {
+ json.put("fullname", user.FullName);
+ }
+ if (user.JID != null) {
+ json.put("jid", user.JID);
+ }
+ if (user.MessagesCount > 0) {
+ json.put("MessagesCount", user.MessagesCount);
+ }
+ } catch (JSONException e) {
+ }
+
+ return json;
+ }
+}
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 0e486f74..00000000
--- 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 users) {
- String json = "[";
-
- Iterator 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;
- }
-}
--
cgit v1.2.3
From 331363c89936be9df126d10e16107b99a18877d1 Mon Sep 17 00:00:00 2001
From: Vitaly Takmazov
Date: Sun, 10 Jan 2016 19:58:19 +0300
Subject: refactoring
---
.../java/com/juick/json/MessageSerializer.java | 20 ++++++++++----------
src/main/java/com/juick/json/UserSerializer.java | 22 +++++++++++-----------
2 files changed, 21 insertions(+), 21 deletions(-)
(limited to 'src/main/java')
diff --git a/src/main/java/com/juick/json/MessageSerializer.java b/src/main/java/com/juick/json/MessageSerializer.java
index 0879f13a..85986415 100644
--- a/src/main/java/com/juick/json/MessageSerializer.java
+++ b/src/main/java/com/juick/json/MessageSerializer.java
@@ -38,9 +38,9 @@ public class MessageSerializer extends JSONSerializer {
@Override
public Message deserialize(JSONObject json) throws JSONException {
com.juick.Message jmsg = new com.juick.Message();
- jmsg.MID = json.getInt("mid");
+ jmsg.setMID(json.getInt("mid"));
if (json.has("rid")) {
- jmsg.RID = json.getInt("rid");
+ jmsg.setRID(json.getInt("rid"));
}
if (json.has("replyto")) {
jmsg.ReplyTo = json.getInt("replyto");
@@ -50,7 +50,7 @@ public class MessageSerializer extends JSONSerializer {
jmsg.ReadOnly = json.has("readonly");
jmsg.Text = json.getString("body").replace(""", "\"");
- jmsg.User = userSerializer.deserialize(json.getJSONObject("user"));
+ jmsg.setUser(userSerializer.deserialize(json.getJSONObject("user")));
try {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -82,11 +82,11 @@ public class MessageSerializer extends JSONSerializer {
JSONObject json = new JSONObject();
try {
- if (msg.MID > 0) {
- json.put("mid", msg.MID);
+ if (msg.getMID() > 0) {
+ json.put("mid", msg.getMID());
}
- if (msg.RID > 0) {
- json.put("rid", msg.RID);
+ if (msg.getRID() > 0) {
+ json.put("rid", msg.getRID());
}
if (msg.ReplyTo > 0) {
json.put("replyto", msg.ReplyTo);
@@ -105,8 +105,8 @@ public class MessageSerializer extends JSONSerializer {
} else if (msg.TimestampString != null) {
json.put("timestamp", msg.TimestampString);
}
- if (msg.User != null) {
- json.put("user", userSerializer.serialize(msg.User));
+ if (msg.getUser() != null) {
+ json.put("user", userSerializer.serialize(msg.getUser()));
}
if (msg.Tags != null && msg.Tags.size() > 0) {
json.put("tags", new JSONArray(msg.Tags));
@@ -118,7 +118,7 @@ public class MessageSerializer extends JSONSerializer {
json.put("place", placeSerializer.serialize(msg.Place));
}
if (msg.AttachmentType != null) {
- String fname = msg.MID + (msg.RID > 0 ? "-" + msg.RID : "") + "." + msg.AttachmentType;
+ String fname = msg.getMID() + (msg.getRID() > 0 ? "-" + msg.getRID() : "") + "." + msg.AttachmentType;
JSONObject photo = new JSONObject();
photo.put("thumbnail", "http://i.juick.com/ps/" + fname);
photo.put("small", "http://i.juick.com/photos-512/" + fname);
diff --git a/src/main/java/com/juick/json/UserSerializer.java b/src/main/java/com/juick/json/UserSerializer.java
index 07f87616..4485812a 100644
--- a/src/main/java/com/juick/json/UserSerializer.java
+++ b/src/main/java/com/juick/json/UserSerializer.java
@@ -30,10 +30,10 @@ public class UserSerializer extends JSONSerializer {
@Override
public User deserialize(JSONObject json) throws JSONException {
User juser = new User();
- juser.UID = json.getInt("uid");
- juser.UName = json.getString("uname");
+ juser.setUID(json.getInt("uid"));
+ juser.setUName(json.getString("uname"));
if (json.has("fullname")) {
- juser.FullName = json.getString("fullname");
+ juser.setFullName(json.getString("fullname"));
}
return juser;
}
@@ -43,17 +43,17 @@ public class UserSerializer extends JSONSerializer {
JSONObject json = new JSONObject();
try {
- if (user.UID > 0) {
- json.put("uid", user.UID);
+ if (user.getUID() > 0) {
+ json.put("uid", user.getUID());
}
- if (user.UName != null) {
- json.put("uname", user.UName);
+ if (user.getUName() != null) {
+ json.put("uname", user.getUName());
}
- if (user.FullName != null) {
- json.put("fullname", user.FullName);
+ if (user.getFullName() != null) {
+ json.put("fullname", user.getFullName());
}
- if (user.JID != null) {
- json.put("jid", user.JID);
+ if (user.getJID() != null) {
+ json.put("jid", user.getJID());
}
if (user.MessagesCount > 0) {
json.put("MessagesCount", user.MessagesCount);
--
cgit v1.2.3
From ee0e13e7243abecf242236c224551774195524a3 Mon Sep 17 00:00:00 2001
From: Vitaly Takmazov
Date: Sun, 10 Jan 2016 20:10:19 +0300
Subject: refactoring, part 2
---
src/main/java/com/juick/json/MessageSerializer.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
(limited to 'src/main/java')
diff --git a/src/main/java/com/juick/json/MessageSerializer.java b/src/main/java/com/juick/json/MessageSerializer.java
index 85986415..dccf1b3a 100644
--- a/src/main/java/com/juick/json/MessageSerializer.java
+++ b/src/main/java/com/juick/json/MessageSerializer.java
@@ -49,7 +49,7 @@ public class MessageSerializer extends JSONSerializer {
jmsg.FriendsOnly = json.has("friendsonly");
jmsg.ReadOnly = json.has("readonly");
- jmsg.Text = json.getString("body").replace(""", "\"");
+ jmsg.setText(json.getString("body").replace(""", "\""));
jmsg.setUser(userSerializer.deserialize(json.getJSONObject("user")));
try {
@@ -97,8 +97,8 @@ public class MessageSerializer extends JSONSerializer {
if (msg.ReadOnly) {
json.put("readonly", 1);
}
- if (msg.Text != null) {
- json.put("body", msg.Text);
+ if (msg.getText() != null) {
+ json.put("body", msg.getText());
}
if (msg.Timestamp != null) {
json.put("timestamp", msg.Timestamp);
--
cgit v1.2.3
From 9a50ad8dea5e9ebc5eb1c5efb19aa7a784283e14 Mon Sep 17 00:00:00 2001
From: Vitaly Takmazov
Date: Sat, 16 Jan 2016 18:25:11 +0300
Subject: date and tests
---
build.gradle | 1 +
.../java/com/juick/json/MessageSerializer.java | 16 ++++++++----
src/test/java/com/juick/JsonTests.java | 30 ++++++++++++++++++++++
3 files changed, 42 insertions(+), 5 deletions(-)
create mode 100644 src/test/java/com/juick/JsonTests.java
(limited to 'src/main/java')
diff --git a/build.gradle b/build.gradle
index 2e438790..456e86c8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,4 +6,5 @@ repositories {
dependencies {
compile 'org.json:json:20151123'
+ testCompile 'junit:junit:4.12'
}
diff --git a/src/main/java/com/juick/json/MessageSerializer.java b/src/main/java/com/juick/json/MessageSerializer.java
index dccf1b3a..da87d4be 100644
--- a/src/main/java/com/juick/json/MessageSerializer.java
+++ b/src/main/java/com/juick/json/MessageSerializer.java
@@ -22,6 +22,9 @@ import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -31,10 +34,14 @@ import org.json.JSONObject;
* @author Ugnich Anton
*/
public class MessageSerializer extends JSONSerializer {
+
+ private final static Logger LOGGER = Logger.getLogger(MessageSerializer.class.getName());
UserSerializer userSerializer = new UserSerializer();
PlaceSerializer placeSerializer = new PlaceSerializer();
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
@Override
public Message deserialize(JSONObject json) throws JSONException {
com.juick.Message jmsg = new com.juick.Message();
@@ -55,7 +62,7 @@ public class MessageSerializer extends JSONSerializer {
try {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
- jmsg.Timestamp = df.parse(json.getString("timestamp"));
+ jmsg.setDate(df.parse(json.getString("timestamp")));
} catch (ParseException e) {
}
@@ -100,10 +107,8 @@ public class MessageSerializer extends JSONSerializer {
if (msg.getText() != null) {
json.put("body", msg.getText());
}
- if (msg.Timestamp != null) {
- json.put("timestamp", msg.Timestamp);
- } else if (msg.TimestampString != null) {
- json.put("timestamp", msg.TimestampString);
+ if (msg.getDate() != null) {
+ json.put("timestamp", df.format(msg.getDate()));
}
if (msg.getUser() != null) {
json.put("user", userSerializer.serialize(msg.getUser()));
@@ -126,6 +131,7 @@ public class MessageSerializer extends JSONSerializer {
json.put("photo", photo);
}
} catch (JSONException e) {
+ LOGGER.log(Level.SEVERE, "JSON Exception", e);
}
return json;
diff --git a/src/test/java/com/juick/JsonTests.java b/src/test/java/com/juick/JsonTests.java
new file mode 100644
index 00000000..5d78a2d6
--- /dev/null
+++ b/src/test/java/com/juick/JsonTests.java
@@ -0,0 +1,30 @@
+package com.juick;
+
+import static org.junit.Assert.assertEquals;
+
+import com.juick.json.MessageSerializer;
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.juick.Message;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+
+public class JsonTests {
+ @Test
+ public void DateTest() {
+ Message msg = new Message();
+ SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ try {
+ msg.setDate(df.parse("2015-01-01 00:00:00"));
+ MessageSerializer serializer = new MessageSerializer();
+ String json = serializer.serialize(msg).toString();
+ assertEquals("{\"timestamp\":\"2015-01-01 00:00:00\"}", json);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+
+ }
+}
\ No newline at end of file
--
cgit v1.2.3
From 143513cec90ab176e5c174fb4ed98c249652bda6 Mon Sep 17 00:00:00 2001
From: Vitaly Takmazov
Date: Sat, 16 Jan 2016 19:13:30 +0300
Subject: refactoring
---
src/main/java/com/juick/json/JSONSerializer.java | 3 ++-
src/main/java/com/juick/json/MessageSerializer.java | 16 ++++++++--------
2 files changed, 10 insertions(+), 9 deletions(-)
(limited to 'src/main/java')
diff --git a/src/main/java/com/juick/json/JSONSerializer.java b/src/main/java/com/juick/json/JSONSerializer.java
index 8ac72cb0..142cacf0 100644
--- a/src/main/java/com/juick/json/JSONSerializer.java
+++ b/src/main/java/com/juick/json/JSONSerializer.java
@@ -5,6 +5,7 @@
*/
package com.juick.json;
+import java.text.ParseException;
import java.util.Iterator;
import java.util.List;
import org.json.JSONObject;
@@ -21,7 +22,7 @@ public abstract class JSONSerializer {
* @param json
* @return
*/
- public abstract T deserialize(JSONObject json);
+ public abstract T deserialize(JSONObject json) throws ParseException;
/**
*
diff --git a/src/main/java/com/juick/json/MessageSerializer.java b/src/main/java/com/juick/json/MessageSerializer.java
index da87d4be..4818722f 100644
--- a/src/main/java/com/juick/json/MessageSerializer.java
+++ b/src/main/java/com/juick/json/MessageSerializer.java
@@ -40,10 +40,15 @@ public class MessageSerializer extends JSONSerializer {
UserSerializer userSerializer = new UserSerializer();
PlaceSerializer placeSerializer = new PlaceSerializer();
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ final SimpleDateFormat df;
+
+ public MessageSerializer() {
+ df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ df.setTimeZone(TimeZone.getTimeZone("UTC"));
+ }
@Override
- public Message deserialize(JSONObject json) throws JSONException {
+ public Message deserialize(JSONObject json) throws JSONException, ParseException {
com.juick.Message jmsg = new com.juick.Message();
jmsg.setMID(json.getInt("mid"));
if (json.has("rid")) {
@@ -59,12 +64,7 @@ public class MessageSerializer extends JSONSerializer {
jmsg.setText(json.getString("body").replace(""", "\""));
jmsg.setUser(userSerializer.deserialize(json.getJSONObject("user")));
- try {
- DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- df.setTimeZone(TimeZone.getTimeZone("UTC"));
- jmsg.setDate(df.parse(json.getString("timestamp")));
- } catch (ParseException e) {
- }
+ jmsg.setDate(df.parse(json.getString("timestamp")));
if (json.has("tags")) {
JSONArray tags = json.getJSONArray("tags");
--
cgit v1.2.3
From fc46d9c1f8c9967f9c648f09a3714e8c3a4ed75a Mon Sep 17 00:00:00 2001
From: Vitaly Takmazov
Date: Fri, 8 Apr 2016 16:23:55 +0300
Subject: update api
---
src/main/java/com/juick/json/UserSerializer.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'src/main/java')
diff --git a/src/main/java/com/juick/json/UserSerializer.java b/src/main/java/com/juick/json/UserSerializer.java
index 4485812a..390f4bf6 100644
--- a/src/main/java/com/juick/json/UserSerializer.java
+++ b/src/main/java/com/juick/json/UserSerializer.java
@@ -55,8 +55,8 @@ public class UserSerializer extends JSONSerializer {
if (user.getJID() != null) {
json.put("jid", user.getJID());
}
- if (user.MessagesCount > 0) {
- json.put("MessagesCount", user.MessagesCount);
+ if (user.getUnreadCount() > 0) {
+ json.put("unreadCount", user.getUnreadCount());
}
} catch (JSONException e) {
}
--
cgit v1.2.3