diff options
Diffstat (limited to 'src/com/isode/stroke/serializer/payloadserializers/SearchPayloadSerializer.java')
-rw-r--r-- | src/com/isode/stroke/serializer/payloadserializers/SearchPayloadSerializer.java | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/com/isode/stroke/serializer/payloadserializers/SearchPayloadSerializer.java b/src/com/isode/stroke/serializer/payloadserializers/SearchPayloadSerializer.java new file mode 100644 index 0000000..6928c97 --- /dev/null +++ b/src/com/isode/stroke/serializer/payloadserializers/SearchPayloadSerializer.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2010, Isode Limited, London, England. + * All rights reserved. + */ +/* + * Copyright (c) 2010, Remko Tron¨on. + * All rights reserved. + */ +package com.isode.stroke.serializer.payloadserializers; + +import com.isode.stroke.elements.SearchPayload; +import com.isode.stroke.serializer.GenericPayloadSerializer; +import com.isode.stroke.serializer.xml.XMLElement; +import com.isode.stroke.serializer.xml.XMLTextNode; + +/** + * SearchPayload to String. + */ +public class SearchPayloadSerializer extends GenericPayloadSerializer<SearchPayload> { + + public SearchPayloadSerializer() { + super(SearchPayload.class); + } + + @Override + protected String serializePayload(SearchPayload searchPayload) { + XMLElement searchElement = new XMLElement("query", "jabber:iq:search"); + + if (searchPayload.getInstructions() != null) { + searchElement.addNode(new XMLElement("instructions", "", searchPayload.getInstructions())); + } + + if (searchPayload.getNick() != null) { + searchElement.addNode(new XMLElement("nick", "", searchPayload.getNick())); + } + + if (searchPayload.getFirst() != null) { + searchElement.addNode(new XMLElement("first", "", searchPayload.getFirst())); + } + + if (searchPayload.getLast() != null) { + searchElement.addNode(new XMLElement("last", "", searchPayload.getLast())); + } + + if (searchPayload.getEMail() != null) { + searchElement.addNode(new XMLElement("email", "", searchPayload.getEMail())); + } + + for (SearchPayload.Item item : searchPayload.getItems()) { + XMLElement itemElement = new XMLElement("item"); + itemElement.setAttribute("jid", item.jid.toString()); + itemElement.addNode(new XMLElement("first", "", item.first)); + itemElement.addNode(new XMLElement("last", "", item.last)); + itemElement.addNode(new XMLElement("nick", "", item.nick)); + itemElement.addNode(new XMLElement("email", "", item.email)); + + searchElement.addNode(itemElement); + } + + //if (Form::ref form = searchPayload->getForm()) { + // searchElement.addNode(boost::shared_ptr<XMLRawTextNode>(new XMLRawTextNode(FormSerializer().serialize(form)))); + //} /* Not ported yet. When the time comes, look at Swiften to check if it's changed. It will have. */ + + return searchElement.serialize(); + } +} |