package de.thedevstack.conversationsplus.xmpp.pubsub; import de.thedevstack.conversationsplus.xml.Element; import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket; /** * Generates the IQ packets for Pubsub Subscription as defined in XEP-0060. * @see http://xmpp.org/extensions/xep-0060.html */ public final class PubSubPacketGenerator { /** * Generates a pubsub publish packet. * The attributes from and id are not set in here - this is added while sending the packet. *
     * 
     *   
     *     
     *       
     *         ...
     *       
     *     
     *   
     * 
     * 
* @param nodeName the name of the publish node * @param item the item element * @return the generated PubSubPacket */ public static PubSubPacket generatePubSubPublishPacket(String nodeName, Element item) { final PubSubPacket pubsub = new PubSubPacket(IqPacket.TYPE.SET); final Element publish = pubsub.addChild("publish"); publish.setAttribute("node", nodeName); publish.addChild(item); return pubsub; } /** * Generates a pubsub retrieve packet. * The attributes from and id are not set in here - this is added while sending the packet. *
     * 
     *   
     *     
     *       
     *     
     *   
     * 
     * 
* @param nodeName * @param item * @return */ public static PubSubPacket generatePubSubRetrievePacket(String nodeName, Element item) { final PubSubPacket pubsub = new PubSubPacket(IqPacket.TYPE.GET); final Element items = pubsub.addChild("items"); items.setAttribute("node", nodeName); if (item != null) { items.addChild(item); } return pubsub; } /** * Utility class - avoid instantiation */ private PubSubPacketGenerator() { // Avoid instantiation } }