diff options
Diffstat (limited to 'src/com/isode/stroke/serializer/payloadserializers/MUCOwnerPayloadSerializer.java')
-rw-r--r-- | src/com/isode/stroke/serializer/payloadserializers/MUCOwnerPayloadSerializer.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/com/isode/stroke/serializer/payloadserializers/MUCOwnerPayloadSerializer.java b/src/com/isode/stroke/serializer/payloadserializers/MUCOwnerPayloadSerializer.java new file mode 100644 index 0000000..ed7b5f5 --- /dev/null +++ b/src/com/isode/stroke/serializer/payloadserializers/MUCOwnerPayloadSerializer.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2012, Isode Limited, London, England. + * All rights reserved. + */ +/* + * Copyright (c) 2011, Kevin Smith + * All rights reserved. + */ +package com.isode.stroke.serializer.payloadserializers; + +import com.isode.stroke.elements.MUCOwnerPayload; +import com.isode.stroke.elements.Payload; +import com.isode.stroke.serializer.GenericPayloadSerializer; +import com.isode.stroke.serializer.PayloadSerializer; +import com.isode.stroke.serializer.PayloadSerializerCollection; +import com.isode.stroke.serializer.xml.XMLElement; +import com.isode.stroke.serializer.xml.XMLRawTextNode; + +/** + * Serializer for {@link MUCOwnerPayload} element. + */ +public class MUCOwnerPayloadSerializer extends GenericPayloadSerializer<MUCOwnerPayload> { + public MUCOwnerPayloadSerializer(PayloadSerializerCollection serializers) { + super(MUCOwnerPayload.class); + this.serializers_ = serializers; + } + + @Override + public String serializePayload(MUCOwnerPayload mucOwner) { + XMLElement mucElement = new XMLElement("query", "http://jabber.org/protocol/muc#owner"); + Payload payload = mucOwner.getPayload(); + if (payload != null) { + PayloadSerializer serializer = serializers_.getPayloadSerializer(payload); + if (serializer != null) { + mucElement.addNode(new XMLRawTextNode(serializer.serialize(payload))); + } + } + return mucElement.serialize(); + } + public PayloadSerializerCollection serializers_; +} |