diff options
author | Alex Clayton <alex.clayton@isode.com> | 2014-11-13 15:15:41 (GMT) |
---|---|---|
committer | Alex Clayton <alex.clayton@isode.com> | 2014-11-26 09:39:53 (GMT) |
commit | b89bf2f3363bac56fcc5d02f5fb690c73eaaacdf (patch) | |
tree | 39893e33d2bb88f0eef3e04ae9533bb1d6139c17 /src/com/isode/stroke/serializer/payloadserializers | |
parent | 47cad5fd7883b8c7273ea11073643aa585b485c6 (diff) | |
download | stroke-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/payloadserializers')
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()))); |