summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Clayton <alex.clayton@isode.com>2014-11-13 15:15:41 (GMT)
committerAlex Clayton <alex.clayton@isode.com>2014-11-26 09:39:53 (GMT)
commitb89bf2f3363bac56fcc5d02f5fb690c73eaaacdf (patch)
tree39893e33d2bb88f0eef3e04ae9533bb1d6139c17 /src/com/isode/stroke/serializer
parent47cad5fd7883b8c7273ea11073643aa585b485c6 (diff)
downloadstroke-b89bf2f3363bac56fcc5d02f5fb690c73eaaacdf.zip
stroke-b89bf2f3363bac56fcc5d02f5fb690c73eaaacdf.tar.bz2
Bring Stroke inline with Swiften with respect to MAM
Some patches for MAM had gone into swiften without being ported to stroke. This patch should bring stroke update to date with Swiften. The swiften patches in question are 9b762e1cf26cfe12cf601d9ea95cf91b3f95c799 -- Add node attribute to MAMQuery 8096f80861667381b777af774cfd446d6fc8cda8 -- Brining XEP-0313 (MAM) implementation in line with version 3.0. Test-information: Ran the updated JUnit tests in Eclipse they all passed ok. Ran make and make test in a stroke checkout. Everything build ok and the JUNit tests passed. Change-Id: I95bf5d598808f48fe2d7af12c0f07d852d68c115
Diffstat (limited to 'src/com/isode/stroke/serializer')
-rw-r--r--src/com/isode/stroke/serializer/payloadserializers/FullPayloadSerializerCollection.java1
-rw-r--r--src/com/isode/stroke/serializer/payloadserializers/MAMArchivedSerializer.java33
-rw-r--r--src/com/isode/stroke/serializer/payloadserializers/MAMFinSerializer.java44
-rw-r--r--src/com/isode/stroke/serializer/payloadserializers/MAMQuerySerializer.java4
4 files changed, 48 insertions, 34 deletions
diff --git a/src/com/isode/stroke/serializer/payloadserializers/FullPayloadSerializerCollection.java b/src/com/isode/stroke/serializer/payloadserializers/FullPayloadSerializerCollection.java
index ee8ad05..5da22b8 100644
--- a/src/com/isode/stroke/serializer/payloadserializers/FullPayloadSerializerCollection.java
+++ b/src/com/isode/stroke/serializer/payloadserializers/FullPayloadSerializerCollection.java
@@ -66,7 +66,6 @@ public class FullPayloadSerializerCollection extends PayloadSerializerCollection
addSerializer(new ForwardedSerializer(this));
addSerializer(new MAMResultSerializer(this));
addSerializer(new MAMQuerySerializer());
- addSerializer(new MAMArchivedSerializer());
}
}
diff --git a/src/com/isode/stroke/serializer/payloadserializers/MAMArchivedSerializer.java b/src/com/isode/stroke/serializer/payloadserializers/MAMArchivedSerializer.java
deleted file mode 100644
index 0a5f1f4..0000000
--- a/src/com/isode/stroke/serializer/payloadserializers/MAMArchivedSerializer.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2014 Kevin Smith and Remko Tronçon
-* All rights reserved.
-*/
-
-/*
-* Copyright (c) 2014, Isode Limited, London, England.
-* All rights reserved.
-*/
-
-package com.isode.stroke.serializer.payloadserializers;
-
-import com.isode.stroke.elements.MAMArchived;
-import com.isode.stroke.serializer.GenericPayloadSerializer;
-import com.isode.stroke.serializer.xml.XMLElement;
-
-public class MAMArchivedSerializer extends GenericPayloadSerializer<MAMArchived> {
- public MAMArchivedSerializer() {
- super(MAMArchived.class);
- }
-
- protected String serializePayload(MAMArchived payload) {
- if (payload == null) {
- return "";
- }
-
- XMLElement element = new XMLElement("archived", "urn:xmpp:mam:0");
- element.setAttribute("by", payload.getBy().toString());
- element.setAttribute("id", payload.getID());
-
- return element.serialize();
- }
-}
diff --git a/src/com/isode/stroke/serializer/payloadserializers/MAMFinSerializer.java b/src/com/isode/stroke/serializer/payloadserializers/MAMFinSerializer.java
new file mode 100644
index 0000000..3fcbc1d
--- /dev/null
+++ b/src/com/isode/stroke/serializer/payloadserializers/MAMFinSerializer.java
@@ -0,0 +1,44 @@
+package com.isode.stroke.serializer.payloadserializers;
+
+import com.isode.stroke.elements.MAMFin;
+import com.isode.stroke.elements.ResultSet;
+import com.isode.stroke.serializer.GenericPayloadSerializer;
+import com.isode.stroke.serializer.xml.XMLElement;
+import com.isode.stroke.serializer.xml.XMLRawTextNode;
+
+public class MAMFinSerializer extends GenericPayloadSerializer<MAMFin> {
+
+ public MAMFinSerializer() {
+ super(MAMFin.class);
+ }
+
+ @Override
+ protected String serializePayload(MAMFin payload) {
+ if (payload == null) {
+ return "";
+ }
+
+ XMLElement element = new XMLElement("fin","urn:xmpp:mam:0");
+
+ if (payload.isComplete()) {
+ element.setAttribute("complete", "true");
+ }
+ if (!payload.isStable()) {
+ element.setAttribute("stable", "false");
+ }
+ String queryIDValue = payload.getQueryID();
+ if (queryIDValue != null) {
+ element.setAttribute("queryid", queryIDValue);
+ }
+ ResultSet resultSet = payload.getResultSet();
+ if (resultSet != null) {
+ ResultSetSerializer resultSetSerialized = new ResultSetSerializer();
+ String serializedResultSet = resultSetSerialized.serialize(resultSet);
+ XMLRawTextNode rawTextNode = new XMLRawTextNode(serializedResultSet);
+ element.addNode(rawTextNode);
+ }
+
+ return element.serialize();
+ }
+
+}
diff --git a/src/com/isode/stroke/serializer/payloadserializers/MAMQuerySerializer.java b/src/com/isode/stroke/serializer/payloadserializers/MAMQuerySerializer.java
index 46cc42c..b027f7c 100644
--- a/src/com/isode/stroke/serializer/payloadserializers/MAMQuerySerializer.java
+++ b/src/com/isode/stroke/serializer/payloadserializers/MAMQuerySerializer.java
@@ -21,6 +21,10 @@ public class MAMQuerySerializer extends GenericPayloadSerializer<MAMQuery> {
if (payload.getQueryID() != null) {
element.setAttribute("queryid", payload.getQueryID());
}
+
+ if (payload.getNode() != null) {
+ element.setAttribute("node", payload.getNode());
+ }
if (payload.getForm() != null) {
element.addNode(new XMLRawTextNode((new FormSerializer()).serialize(payload.getForm())));