summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarun Gupta <tarun1995gupta@gmail.com>2015-07-16 21:51:13 (GMT)
committerNick Hudson <nick.hudson@isode.com>2015-07-28 10:41:23 (GMT)
commit6f84f6a65b8b80e2f599dff76da0cd13fbead611 (patch)
tree9a4b503a82d58cfc4884817945fcd26a0c0f9ba4 /src/com/isode/stroke/serializer/StanzaSerializer.java
parent9a419f5fff0701e672e241a515ce3e91438b3e1b (diff)
downloadstroke-6f84f6a65b8b80e2f599dff76da0cd13fbead611.zip
stroke-6f84f6a65b8b80e2f599dff76da0cd13fbead611.tar.bz2
Update Serializers and Parsers.
Updates Serializers and Parsers along with one minor change in XMPPlayer. Update Non Payload Serializers to return SafeByteArray. Updates SafeByteArray to return SafeByteArray on append and plus method. License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: None. Change-Id: I6fe665a26b10cac37b3e3acd9ec15c211ac9b8ab
Diffstat (limited to 'src/com/isode/stroke/serializer/StanzaSerializer.java')
-rw-r--r--src/com/isode/stroke/serializer/StanzaSerializer.java22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/com/isode/stroke/serializer/StanzaSerializer.java b/src/com/isode/stroke/serializer/StanzaSerializer.java
index 589d2e8..0837ff8 100644
--- a/src/com/isode/stroke/serializer/StanzaSerializer.java
+++ b/src/com/isode/stroke/serializer/StanzaSerializer.java
@@ -10,23 +10,39 @@ import com.isode.stroke.elements.Stanza;
import com.isode.stroke.serializer.xml.XMLElement;
import com.isode.stroke.serializer.xml.XMLRawTextNode;
import java.util.logging.Logger;
+import com.isode.stroke.base.SafeByteArray;
public abstract class StanzaSerializer implements ElementSerializer {
private final String tag_;
private final PayloadSerializerCollection payloadSerializers_;
+ private String explicitDefaultNS_;
private final Logger logger_ = Logger.getLogger(this.getClass().getName());
public StanzaSerializer(String tag, PayloadSerializerCollection payloadSerializers) {
+ this(tag, payloadSerializers, null);
+ }
+
+ public StanzaSerializer(String tag, PayloadSerializerCollection payloadSerializers, String explicitNS) {
payloadSerializers_ = payloadSerializers;
tag_ = tag;
+ explicitDefaultNS_ = explicitNS;
+ }
+
+ public SafeByteArray serialize(Element element) {
+ if (explicitDefaultNS_ != null) {
+ return serialize(element, explicitDefaultNS_);
+ }
+ else {
+ return serialize(element, "");
+ }
}
- public String serialize(Element element) {
+ public SafeByteArray serialize(Element element, String xmlns) {
assert element != null;
assert payloadSerializers_ != null;
Stanza stanza = (Stanza) element;
- XMLElement stanzaElement = new XMLElement(tag_);
+ XMLElement stanzaElement = new XMLElement(tag_, (explicitDefaultNS_ != null) ? explicitDefaultNS_ : xmlns);
if (stanza.getFrom() != null && stanza.getFrom().isValid()) {
stanzaElement.setAttribute("from", stanza.getFrom().toString());
}
@@ -53,7 +69,7 @@ public abstract class StanzaSerializer implements ElementSerializer {
if (serializedPayloads.toString().length()!=0) {
stanzaElement.addNode(new XMLRawTextNode(serializedPayloads.toString()));
}
- return stanzaElement.serialize();
+ return new SafeByteArray(stanzaElement.serialize());
}
public abstract void setStanzaSpecificAttributes(Element element, XMLElement xmlElement);