package de.thedevstack.conversationsplus.xmpp.disco; import de.thedevstack.conversationsplus.ConversationsPlusApplication; import de.thedevstack.conversationsplus.xml.Element; import de.thedevstack.conversationsplus.xmpp.jid.Jid; import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket; import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacketGenerator; /** */ public class ServiceDiscoveryIqPacketGenerator { public static IqPacket generateRequest(Jid jid) { IqPacket request = IqPacketGenerator.generateIqGetPacket(); request.setTo(jid); request.query(ServiceDiscovery.NAMESPACE); return request; } public static IqPacket generateResponse(IqPacket packet) { IqPacket responsePacket = IqPacketGenerator.generateIqResultPacket(); responsePacket.setTo(packet.getFrom()); responsePacket.setId(packet.getId()); Element query = responsePacket.addChild(ServiceDiscovery.ELEMENT, ServiceDiscovery.NAMESPACE); query.setAttribute("node", packet.query().getAttribute("node")); final Element identity = query.addChild("identity"); identity.setAttribute("category", "client"); identity.setAttribute("type", FeatureRegistry.IDENTITY_TYPE); identity.setAttribute("name", ConversationsPlusApplication.getNameAndVersion()); for (final String feature : FeatureRegistry.getFeatures()) { query.addChild("feature").setAttribute("var", feature); } return responsePacket; } }