diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/test/java/com/juick/json/JSONSerializer.java | 73 | ||||
-rw-r--r-- | src/test/java/com/juick/json/MessageSerializer.java | 142 | ||||
-rw-r--r-- | src/test/java/com/juick/json/PlaceSerializer.java | 73 | ||||
-rw-r--r-- | src/test/java/com/juick/json/UserSerializer.java | 66 | ||||
-rw-r--r-- | src/test/java/com/juick/tests/MessageTests.java | 39 | ||||
-rw-r--r-- | src/test/java/com/juick/tests/SerializationTests.java | 97 | ||||
-rw-r--r-- | src/test/java/com/juick/xmpp/extensions/JuickMessage.java | 173 | ||||
-rw-r--r-- | src/test/java/com/juick/xmpp/extensions/JuickUser.java | 78 |
8 files changed, 25 insertions, 716 deletions
diff --git a/src/test/java/com/juick/json/JSONSerializer.java b/src/test/java/com/juick/json/JSONSerializer.java deleted file mode 100644 index 3dc9e04e..00000000 --- a/src/test/java/com/juick/json/JSONSerializer.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * 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; - } -} diff --git a/src/test/java/com/juick/json/MessageSerializer.java b/src/test/java/com/juick/json/MessageSerializer.java deleted file mode 100644 index 6f0d462f..00000000 --- a/src/test/java/com/juick/json/MessageSerializer.java +++ /dev/null @@ -1,142 +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 <http://www.gnu.org/licenses/>. - */ -package com.juick.json; - -import com.juick.Message; -import com.juick.Photo; -import com.juick.Tag; -import com.juick.util.DateFormattersHolder; -import org.apache.commons.lang3.StringUtils; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.text.ParseException; -import java.util.stream.Collectors; - -/** - * @author Ugnich Anton - */ -public class MessageSerializer extends JSONSerializer<Message> { - private final static Logger LOGGER = LoggerFactory.getLogger(MessageSerializer.class); - - UserSerializer userSerializer = new UserSerializer(); - PlaceSerializer placeSerializer = new PlaceSerializer(); - - public MessageSerializer() { - } - - @Override - 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")) { - jmsg.setRid(json.getInt("rid")); - } - if (json.has("replyto")) { - jmsg.setReplyto(json.getInt("replyto")); - } - - jmsg.FriendsOnly = json.has("friendsonly"); - jmsg.ReadOnly = json.has("readonly"); - - jmsg.setText(json.getString("body").replace(""", "\"")); - jmsg.setUser(userSerializer.deserialize(json.getJSONObject("user"))); - - jmsg.setDate(DateFormattersHolder.getMessageFormatterInstance().parse(json.getString("timestamp"))); - - if (json.has("tags")) { - JSONArray tags = json.getJSONArray("tags"); - for (int n = 0; n < tags.length(); n++) { - jmsg.getTags().add(new Tag(tags.getString(n).replace(""", "\""))); - } - } - - if (json.has("replies")) { - jmsg.setReplies(json.getInt("replies")); - } - - if (json.has("photo")) { - JSONObject obj = json.getJSONObject("photo"); - Photo photo = new Photo(); - photo.setSmall(obj.getString("small")); - photo.setMedium(obj.getString("medium")); - photo.setThumbnail(obj.getString("thumbnail")); - jmsg.setPhoto(photo); - } - - return jmsg; - } - - @Override - public JSONObject serialize(Message msg) { - JSONObject json = new JSONObject(); - - try { - if (msg.getMid() > 0) { - json.put("mid", msg.getMid()); - } - if (msg.getRid() > 0) { - json.put("rid", msg.getRid()); - } - if (msg.getReplyto() > 0) { - json.put("replyto", msg.getReplyto()); - } - if (msg.FriendsOnly) { - json.put("friendsonly", 1); - } - if (msg.ReadOnly) { - json.put("readonly", 1); - } - if (msg.getText() != null) { - json.put("body", msg.getText()); - } - if (msg.getDate() != null) { - json.put("timestamp", DateFormattersHolder.getMessageFormatterInstance().format(msg.getDate())); - } - if (msg.getUser() != null) { - json.put("user", userSerializer.serialize(msg.getUser())); - } - if (msg.getTags() != null && msg.getTags().size() > 0) { - json.put("tags", new JSONArray(msg.getTags().stream().map(Tag::getName).collect(Collectors.toList()))); - } - if (msg.getReplies() > 0) { - json.put("replies", msg.getReplies()); - } - if (msg.Place != null) { - json.put("place", placeSerializer.serialize(msg.Place)); - } - if (msg.getAttachmentType() != null) { - json.put("attach", msg.getAttachmentType()); - String fname = msg.getMid() + (msg.getRid() > 0 ? "-" + msg.getRid() : StringUtils.EMPTY) + "." + msg.getAttachmentType(); - JSONObject photo = new JSONObject(); - String protocol = getUriScheme() == URIScheme.Plain ? "http:" : "https:"; - photo.put("thumbnail", protocol + "//i.juick.com/ps/" + fname); - photo.put("small", protocol + "//i.juick.com/photos-512/" + fname); - photo.put("medium", protocol + "//i.juick.com/photos-1024/" + fname); - json.put("photo", photo); - } - } catch (JSONException e) { - LOGGER.error("JSON Exception", e); - } - - return json; - } -} diff --git a/src/test/java/com/juick/json/PlaceSerializer.java b/src/test/java/com/juick/json/PlaceSerializer.java deleted file mode 100644 index f433f7f0..00000000 --- a/src/test/java/com/juick/json/PlaceSerializer.java +++ /dev/null @@ -1,73 +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 <http://www.gnu.org/licenses/>. - */ -package com.juick.json; - -import com.juick.Place; -import org.json.JSONException; -import org.json.JSONObject; - -/** - * - * @author Ugnich Anton - */ -public class PlaceSerializer extends JSONSerializer<Place> { - - @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/test/java/com/juick/json/UserSerializer.java b/src/test/java/com/juick/json/UserSerializer.java deleted file mode 100644 index 120645a6..00000000 --- a/src/test/java/com/juick/json/UserSerializer.java +++ /dev/null @@ -1,66 +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 <http://www.gnu.org/licenses/>. - */ -package com.juick.json; - -import com.juick.User; -import org.json.JSONException; -import org.json.JSONObject; - -/** - * - * @author Ugnich Anton - */ -public class UserSerializer extends JSONSerializer<User> { - - @Override - public User deserialize(JSONObject json) throws JSONException { - User juser = new User(); - juser.setUid(json.getInt("uid")); - juser.setName(json.getString("uname")); - if (json.has("fullname")) { - juser.setFullName(json.getString("fullname")); - } - return juser; - } - - @Override - public JSONObject serialize(User user) { - JSONObject json = new JSONObject(); - - try { - if (user.getUid() > 0) { - json.put("uid", user.getUid()); - } - if (user.getName() != null) { - json.put("uname", user.getName()); - } - if (user.getFullName() != null) { - json.put("fullname", user.getFullName()); - } - if (user.getJid() != null) { - json.put("jid", user.getJid()); - } - if (user.getUnreadCount() > 0) { - json.put("unreadCount", user.getUnreadCount()); - } - } catch (JSONException e) { - } - - return json; - } -} diff --git a/src/test/java/com/juick/tests/MessageTests.java b/src/test/java/com/juick/tests/MessageTests.java index 6bc291e2..89dd440e 100644 --- a/src/test/java/com/juick/tests/MessageTests.java +++ b/src/test/java/com/juick/tests/MessageTests.java @@ -1,31 +1,34 @@ package com.juick.tests; -import static org.junit.Assert.assertEquals; - -import com.juick.json.MessageSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.juick.Message; import com.juick.util.DateFormattersHolder; -import com.juick.xmpp.extensions.JuickMessage; import org.apache.commons.lang3.CharEncoding; import org.json.JSONObject; import org.junit.Test; - -import com.juick.Message; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.xml.sax.SAXException; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import java.io.*; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.StringWriter; import java.text.ParseException; import java.util.Date; +import static org.junit.Assert.assertEquals; + public class MessageTests { @Test public void messageParserSerializer() throws ParseException, ParserConfigurationException, - IOException, SAXException { + IOException, SAXException, JAXBException { Message msg = new Message(); msg.parseTags("test test" + (char) 0xA0 + "2 test3"); assertEquals("First tag must be", "test", msg.getTags().get(0).getName()); @@ -33,15 +36,23 @@ public class MessageTests { assertEquals("Count of tags must be", 3, msg.getTags().size()); Date currentDate = new Date(); msg.setDate(currentDate); - MessageSerializer serializer = new MessageSerializer(); - JSONObject jsonMessage = serializer.serialize(msg); + ObjectMapper serializer = new ObjectMapper(); + String jsonMessage = serializer.writeValueAsString(msg); + JSONObject jsonObject = new JSONObject(jsonMessage); assertEquals("date should be in timestamp field", DateFormattersHolder.getMessageFormatterInstance().format(currentDate), - jsonMessage.getString("timestamp")); - JuickMessage xmppMessage = new JuickMessage(msg); - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + jsonObject.getString("timestamp")); + + JAXBContext context = JAXBContext + .newInstance(Message.class); + Marshaller m = context.createMarshaller(); + + StringWriter sw = new StringWriter(); + m.marshal(msg, sw); + + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); - Document doc = db.parse(new ByteArrayInputStream(xmppMessage.toString().getBytes(CharEncoding.UTF_8))); + Document doc = db.parse(new ByteArrayInputStream(sw.toString().getBytes(CharEncoding.UTF_8))); Node juickNode = doc.getElementsByTagName("juick").item(0); NamedNodeMap attrs = juickNode.getAttributes(); assertEquals("date should be in ts field", DateFormattersHolder.getMessageFormatterInstance().format(currentDate), diff --git a/src/test/java/com/juick/tests/SerializationTests.java b/src/test/java/com/juick/tests/SerializationTests.java deleted file mode 100644 index 022a1bc7..00000000 --- a/src/test/java/com/juick/tests/SerializationTests.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.juick.tests; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.juick.Message; -import com.juick.Tag; -import com.juick.User; -import com.juick.json.MessageSerializer; -import com.juick.xmpp.extensions.JuickMessage; -import org.json.JSONObject; -import org.junit.Test; -import org.w3c.dom.Document; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Marshaller; -import javax.xml.bind.Unmarshaller; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import java.io.IOException; -import java.io.StringReader; -import java.io.StringWriter; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.TimeZone; - -import static org.junit.Assert.assertEquals; - -public class SerializationTests { - @Test - public void DateTest() { - Message msg = new Message(); - SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - df.setTimeZone(TimeZone.getTimeZone("UTC")); - try { - msg.setDate(df.parse("2015-01-01 05:02:10")); - MessageSerializer serializer = new MessageSerializer(); - String json = serializer.serialize(msg).toString(); - assertEquals("{\"timestamp\":\"2015-01-01 05:02:10\"}", json); - } catch (ParseException e) { - e.printStackTrace(); - } - } - @Test - public void serializersTest() throws IOException, JAXBException, ParserConfigurationException, SAXException { - User user = new User(); - user.setName("ugnich"); - user.setUid(1); - user.setFullName("Anton Ugnich"); - ObjectMapper mapper = new ObjectMapper(); - mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); - mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); - mapper.setSerializationInclusion(JsonInclude.Include.NON_DEFAULT); - Message msg = new Message(); - msg.setMid(1); - msg.setUser(user); - msg.setText("yo"); - msg.setDate(new Date()); - msg.getTags().add(new Tag("test")); - msg.getTags().add(new Tag("json")); - msg.setAttachmentType("png"); - MessageSerializer messageSerializer = new MessageSerializer(); - JSONObject handmadeJsonMessage = messageSerializer.serialize(msg); - Message jacksonMessage = mapper.readValue(handmadeJsonMessage.toString(), Message.class); - assertEquals("jackson should deserialize ugnich json", msg, jacksonMessage); - String jacksonStringMessage = mapper.writeValueAsString(jacksonMessage); - assertEquals("jackson message should have an attachment url", - "http://i.juick.com/photos-1024/1.png", jacksonMessage.getAttachmentURL()); - assertEquals("jackson message should have image previews", - "http://i.juick.com/photos-1024/1.png", jacksonMessage.getPhoto().getMedium()); - JSONObject jacksonJsonMessage = new JSONObject(jacksonStringMessage); - assertEquals("jackson should serialize as ugnich", handmadeJsonMessage.length(), jacksonJsonMessage.length()); - - JuickMessage jmsg = new JuickMessage(msg); - String handmadeXml = jmsg.toString(); - - JAXBContext messageContext = JAXBContext.newInstance(Message.class); - Unmarshaller unmarshaller = messageContext.createUnmarshaller(); - Message jaxbMessage = (Message) unmarshaller.unmarshal(new StringReader(handmadeXml)); - assertEquals("jaxb should unmarshal ugnich xml", msg, jaxbMessage); - StringWriter sw = new StringWriter(); - Marshaller messageMarshaller = messageContext.createMarshaller(); - messageMarshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE); - messageMarshaller.marshal(msg, sw); - String xmlString = sw.toString(); - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.parse(new InputSource(new StringReader(xmlString))); - assertEquals("jaxb should marshal as ugnich", 4, doc.getDocumentElement().getChildNodes().getLength()); - assertEquals("jaxb should marshal as ugnich", 8, doc.getDocumentElement().getAttributes().getLength()); - assertEquals("xmpp message should have an attach attribute", "png", doc.getDocumentElement().getAttribute("attach")); - } -}
\ No newline at end of file diff --git a/src/test/java/com/juick/xmpp/extensions/JuickMessage.java b/src/test/java/com/juick/xmpp/extensions/JuickMessage.java deleted file mode 100644 index ae7fc89c..00000000 --- a/src/test/java/com/juick/xmpp/extensions/JuickMessage.java +++ /dev/null @@ -1,173 +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 <http://www.gnu.org/licenses/>. - */ -package com.juick.xmpp.extensions; - -import com.juick.Tag; -import com.juick.util.DateFormattersHolder; -import com.juick.xmpp.StanzaChild; -import com.juick.xmpp.utils.XmlUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - -import java.io.IOException; -import java.text.ParseException; - -/** - * @author Ugnich Anton - */ -public class JuickMessage extends com.juick.Message implements StanzaChild { - public final static String XMLNS = "http://juick.com/message"; - public final static String TagName = "juick"; - - public JuickMessage() { - } - - public JuickMessage(com.juick.Message msg) { - super(msg); - } - - @Override - public String getXMLNS() { - return XMLNS; - } - - @Override - public JuickMessage parse(XmlPullParser parser) throws XmlPullParserException, IOException, ParseException { - JuickMessage jmsg = new JuickMessage(); - - final String sMID = parser.getAttributeValue(null, "mid"); - if (sMID != null) { - jmsg.setMid(Integer.parseInt(sMID)); - } - final String sRID = parser.getAttributeValue(null, "rid"); - if (sRID != null) { - jmsg.setRid(Integer.parseInt(sRID)); - } - final String sReplyTo = parser.getAttributeValue(null, "replyto"); - if (sReplyTo != null) { - jmsg.setReplyto(Integer.parseInt(sReplyTo)); - } - final String sPrivacy = parser.getAttributeValue(null, "privacy"); - if (sPrivacy != null) { - jmsg.setPrivacy(Integer.parseInt(sPrivacy)); - } - final String sFriendsOnly = parser.getAttributeValue(null, "friendsonly"); - if (sFriendsOnly != null) { - jmsg.FriendsOnly = true; - } - final String sReadOnly = parser.getAttributeValue(null, "readonly"); - if (sReadOnly != null) { - jmsg.ReadOnly = true; - } - String ts = parser.getAttributeValue(null, "ts"); - if (ts != null) { - jmsg.setDate(DateFormattersHolder.getMessageFormatterInstance().parse(ts)); - } - jmsg.setAttachmentType(parser.getAttributeValue(null, "attach")); - - while (parser.next() == XmlPullParser.START_TAG) { - final String tag = parser.getName(); - final String xmlns = parser.getNamespace(); - if (tag.equals("body")) { - jmsg.setText(XmlUtils.getTagText(parser)); - } else if (tag.equals(JuickUser.TagName) && xmlns != null && xmlns.equals(JuickUser.XMLNS)) { - jmsg.setUser(new JuickUser().parse(parser)); - } else if (tag.equals("tag")) { - jmsg.getTags().add(new Tag(XmlUtils.getTagText(parser))); - } else { - XmlUtils.skip(parser); - } - } - return jmsg; - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - - builder.append("<").append(TagName).append(" xmlns=\"").append(XMLNS).append("\""); - - if (getMid() > 0) - builder.append(" mid=\"").append(getMid()).append("\""); - - if (getRid() > 0) - builder.append(" rid=\"").append(getRid()).append("\""); - - if (getReplyto() > 0) - builder.append(" replyto=\"").append(getReplyto()).append("\""); - - builder.append(" privacy=\"").append(getPrivacy()).append("\""); - - if (FriendsOnly) - builder.append(" friendsonly=\"1\""); - - if (ReadOnly) - builder.append(" readonly=\"1\""); - - if (getDate() != null) - builder.append(" ts=\"") - .append(DateFormattersHolder.getMessageFormatterInstance().format(getDate())) - .append("\""); - - if (getAttachmentType() != null) - builder.append(" attach=\"").append(getAttachmentType()).append("\""); - - builder.append(">"); - - if (getUser() != null) - builder.append(JuickUser.toString(getUser())); - - if (getText() != null) - builder.append("<body>").append(XmlUtils.escape(getText())).append("</body>"); - - for (com.juick.Tag tag : getTags()) - builder.append("<tag>").append(XmlUtils.escape(tag.getName())).append("</tag>"); - - builder.append("</").append(TagName).append(">"); - - return builder.toString(); - } - - @Override - public boolean equals(Object obj) { - if (obj == this) - return true; - - if (!(obj instanceof JuickMessage)) - return false; - - JuickMessage jmsg = (JuickMessage) obj; - return (this.getMid() == jmsg.getMid() && this.getRid() == jmsg.getRid()); - } - - @Override - public int compareTo(Object obj) throws ClassCastException { - if (obj == this) - return 0; - - if (!(obj instanceof JuickMessage)) - throw new ClassCastException(); - - JuickMessage jmsg = (JuickMessage) obj; - int cmp = Integer.compare(jmsg.getMid(), getMid()); - if (cmp == 0) - cmp = Integer.compare(getRid(), jmsg.getRid()); - - return cmp; - } -} diff --git a/src/test/java/com/juick/xmpp/extensions/JuickUser.java b/src/test/java/com/juick/xmpp/extensions/JuickUser.java deleted file mode 100644 index 08e38c41..00000000 --- a/src/test/java/com/juick/xmpp/extensions/JuickUser.java +++ /dev/null @@ -1,78 +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 <http://www.gnu.org/licenses/>. - */ -package com.juick.xmpp.extensions; - -import com.juick.xmpp.StanzaChild; -import com.juick.xmpp.utils.XmlUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - -import java.io.IOException; - -/** - * @author Ugnich Anton - */ -public class JuickUser extends com.juick.User implements StanzaChild { - public final static String XMLNS = "http://juick.com/user"; - public final static String TagName = "user"; - - public JuickUser() { - } - - public JuickUser(com.juick.User user) { - super(user); - } - - @Override - public String getXMLNS() { - return XMLNS; - } - - @Override - public JuickUser parse(final XmlPullParser parser) throws XmlPullParserException, IOException { - JuickUser juser = new JuickUser(); - String strUID = parser.getAttributeValue(null, "uid"); - if (strUID != null) { - juser.setUid(Integer.parseInt(strUID)); - } - juser.setName(parser.getAttributeValue(null, "uname")); - XmlUtils.skip(parser); - return juser; - } - - public static String toString(com.juick.User user) { - StringBuilder builder = new StringBuilder(); - - builder.append("<").append(TagName).append(" xmlns='").append(XMLNS).append("'"); - - if (user.getUid() > 0) - builder.append(" uid='").append(user.getUid()).append("'"); - - if (user.getName() != null && user.getName().length() > 0) - builder.append(" uname='").append(XmlUtils.escape(user.getName())).append("'"); - - builder.append("/>"); - - return builder.toString(); - } - - @Override - public String toString() { - return toString(this); - } -} |