summaryrefslogtreecommitdiffstats
blob: 8d89d98309d01cd9e1363a8d392fc76a31f2ec5e (plain)
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
/*
 * Copyright (c) 2012, Isode Limited, London, England.
 * All rights reserved.
 */
/*
 * Copyright (c) 2010, Kevin Smith.
 * All rights reserved.
 */

package com.isode.stroke.serializer.payloadserializers;

import com.isode.stroke.elements.DiscoItems;
import com.isode.stroke.serializer.GenericPayloadSerializer;
import com.isode.stroke.serializer.xml.XMLElement;

class DiscoItemsSerializer extends GenericPayloadSerializer<DiscoItems> {

    public DiscoItemsSerializer() {
        super(DiscoItems.class);
    }

    @Override
    protected String serializePayload(DiscoItems discoItems) {
        XMLElement queryElement = new XMLElement("query", "http://jabber.org/protocol/disco#items");
	if (!discoItems.getNode().isEmpty()) {
		queryElement.setAttribute("node", discoItems.getNode());
	}
	for (DiscoItems.Item item : discoItems.getItems()) {
		XMLElement itemElement = new XMLElement("item");
		itemElement.setAttribute("name", item.getName());
		itemElement.setAttribute("jid", item.getJID().toString());
		if (!item.getNode().isEmpty()) {
			itemElement.setAttribute("node", item.getNode());
		}
		queryElement.addNode(itemElement);
	}
	return queryElement.serialize();
    }

}