1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
/*
* Copyright (c) 2010-2015, Isode Limited, London, England.
* 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;
/**
* 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();
}
}
|