diff options
Diffstat (limited to 'src/com/isode/stroke/serializer/payloadserializers/MUCDestroyPayloadSerializer.java')
-rw-r--r-- | src/com/isode/stroke/serializer/payloadserializers/MUCDestroyPayloadSerializer.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/com/isode/stroke/serializer/payloadserializers/MUCDestroyPayloadSerializer.java b/src/com/isode/stroke/serializer/payloadserializers/MUCDestroyPayloadSerializer.java new file mode 100644 index 0000000..7152a5d --- /dev/null +++ b/src/com/isode/stroke/serializer/payloadserializers/MUCDestroyPayloadSerializer.java @@ -0,0 +1,40 @@ +/* + * 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.MUCDestroyPayload; +import com.isode.stroke.serializer.GenericPayloadSerializer; +import com.isode.stroke.serializer.xml.XMLElement; +import com.isode.stroke.serializer.xml.XMLTextNode; + +/** + * Serializer for {@link MUCDestroyPayload} element. + */ +public class MUCDestroyPayloadSerializer extends GenericPayloadSerializer<MUCDestroyPayload> { + /** + * Create the serializer + */ + public MUCDestroyPayloadSerializer() { + super(MUCDestroyPayload.class); + } + + @Override + public String serializePayload(MUCDestroyPayload payload) { + XMLElement mucElement = new XMLElement("destroy", ""); + if (payload.getReason() != null && !payload.getReason().isEmpty()) { + XMLElement reason = new XMLElement("reason", ""); + reason.addNode(new XMLTextNode(payload.getReason())); + mucElement.addNode(reason); + } + if (payload.getNewVenue() != null && payload.getNewVenue().isValid()) { + mucElement.setAttribute("jid", payload.getNewVenue().toString()); + } + return mucElement.serialize(); + } +} |