Class PubSub


  • public final class PubSub
    extends Object
    The implementation of the <pubsub/> element in the http://jabber.org/protocol/pubsub namespace.

    Child elements are created with a bunch of static factory methods.

    See Also:
    XEP-0060: Publish-Subscribe, XML Schema
    • Method Detail

      • withAffiliations

        public static PubSub withAffiliations()
        Creates a pubsub element with an <affiliations/> child element.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <affiliations/>
         </pubsub>
         
        Returns:
        The pubsub instance.
        See Also:
        5.7 Retrieve Affiliations
      • withAffiliations

        public static PubSub withAffiliations​(String node)
        Creates a pubsub element with an <affiliations/> child element and a 'node' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <affiliations node='node6'/>
         </pubsub>
         
        Parameters:
        node - The node.
        Returns:
        The pubsub instance.
        See Also:
        5.7 Retrieve Affiliations
      • withConfigure

        public static PubSub withConfigure​(String node,
                                           DataForm configurationForm)
        Creates a pubsub element with an <configure/> child element and a 'node' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <configure node='princely_musings'>
                 <x xmlns='jabber:x:data' type='submit'>
                     <field var='FORM_TYPE' type='hidden'>
                          <value>http://jabber.org/protocol/pubsub#node_config</value>
                     </field>
                     <field var='pubsub#tempsub'><value>true</value></field>
                 </x>
             </configure>
         </pubsub>
         
        Parameters:
        node - The node.
        configurationForm - The configuration form.
        Returns:
        The pubsub instance.
        See Also:
        12.4 Temporary Subscriptions
      • withCreate

        public static PubSub withCreate​(String node)
        Creates a pubsub element with an <create/> child element and a 'node' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <create node='princely_musings'/>
         </pubsub>
         
        Parameters:
        node - The node.
        Returns:
        The pubsub instance.
        See Also:
        8.1 Create a Node
      • withCreate

        public static PubSub withCreate​(String node,
                                        DataForm configurationForm)
        Creates a pubsub element with an <create/> and <configure/> child element.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <create node='princely_musings'/>
             <configure>
                 <x xmlns='jabber:x:data' type='submit'>
                 </x>
             </configure>
         </pubsub>
         
        Parameters:
        node - The node.
        configurationForm - The configuration form.
        Returns:
        The pubsub instance.
        See Also:
        8.1.3 Create and Configure a Node
      • withSubscriptions

        public static PubSub withSubscriptions()
        Creates a pubsub element with a <subscriptions/> child element.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <subscriptions/>
         </pubsub>
         
        Returns:
        The pubsub instance.
        See Also:
        5.6 Retrieve Subscriptions
      • withSubscriptions

        public static PubSub withSubscriptions​(String node)
        Creates a pubsub element with a <subscriptions/> child element with a 'node' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <subscriptions node='princely_musings'/>
         </pubsub>
         
        Parameters:
        node - The node.
        Returns:
        The pubsub instance.
        See Also:
        5.6 Retrieve Subscriptions
      • withSubscribe

        public static PubSub withSubscribe​(String node,
                                           Jid jid)
        Creates a pubsub element with a <subscribe/> child element with a 'node' and 'jid' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <subscribe node='princely_musings' jid='francisco@denmark.lit'/>
         </pubsub>
         
        Parameters:
        node - The node.
        jid - The JID.
        Returns:
        The pubsub instance.
        See Also:
        6.1 Subscribe to a Node
      • withSubscribe

        public static PubSub withSubscribe​(String node,
                                           Jid jid,
                                           DataForm dataForm)
        Creates a pubsub element with a <subscribe/> and <options/> child element with a 'node' and 'jid' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <subscribe node='princely_musings' jid='francisco@denmark.lit'/>
             <options>
                 <x xmlns='jabber:x:data' type='submit'>
                 </x>
             </options>
         </pubsub>
         
        Parameters:
        node - The node.
        jid - The JID.
        dataForm - The dataForm.
        Returns:
        The pubsub instance.
        See Also:
        6.3.7 Subscribe and Configure
      • withOptions

        public static PubSub withOptions​(String node,
                                         Jid jid,
                                         String subid,
                                         DataForm dataForm)
        Creates a pubsub element with an <options/> child element with a 'node' and 'jid' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <options>
                 <x xmlns='jabber:x:data' type='submit'>
                 </x>
             </options>
         </pubsub>
         
        Parameters:
        node - The node.
        jid - The JID.
        subid - The subscription id.
        dataForm - The data form.
        Returns:
        The pubsub instance.
        See Also:
        6.3.5 Form Submission
      • withUnsubscribe

        public static PubSub withUnsubscribe​(String node,
                                             Jid jid,
                                             String subscriptionId)
        Creates a pubsub element with an <unsubscribe/> child element with a 'node' and 'jid' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <unsubscribe node='princely_musings' jid='francisco@denmark.lit'/>
         </pubsub>
         
        Parameters:
        node - The node.
        jid - The JID.
        subscriptionId - The subscription id.
        Returns:
        The pubsub instance.
        See Also:
        6.2 Unsubscribe from a Node
      • withDefault

        public static PubSub withDefault​(String node)
        Creates a pubsub element with a <default/> child element with a 'node' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <default node='princely_musings'/>
         </pubsub>
         
        Parameters:
        node - The node.
        Returns:
        The pubsub instance.
        See Also:
        6.4 Request Default Subscription Configuration Options
      • withItems

        public static PubSub withItems​(String node)
        Creates a pubsub element with an <items/> child element with a 'node' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <items node='princely_musings'/>
         </pubsub>
         
        Parameters:
        node - The node.
        Returns:
        The pubsub instance.
        See Also:
        6.5.2 Requesting All Items
      • withItems

        public static PubSub withItems​(String node,
                                       String... ids)
        Creates a pubsub element with an <items/> child element, containing multiple item elements with an 'id' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <items node='princely_musings'>
                 <item id='368866411b877c30064a5f62b917cffe'/>
                 <item id='4e30f35051b7b8b42abe083742187228'/>
             </items>
         </pubsub>
         
        Parameters:
        node - The node.
        ids - The ids.
        Returns:
        The pubsub instance.
        See Also:
        6.5.6 Returning Notifications Only
      • withItems

        public static PubSub withItems​(String node,
                                       int maxItems)
        Creates a pubsub element with an <items/> child element with a 'node' and a 'max_items' attribute.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <items node='princely_musings' max_items='2'/>
         </pubsub>
         
        Parameters:
        node - The node.
        maxItems - The max items.
        Returns:
        The pubsub instance.
        See Also:
        6.5.7 Requesting the Most Recent Items
      • withPublish

        public static PubSub withPublish​(String node,
                                         String id,
                                         Object item,
                                         DataForm options)
        Creates a pubsub element with a <publish/> child element.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <publish node='princely_musings'>
                 <item id='bnd81g37d61f49fgn581'>
                     <entry xmlns='http://www.w3.org/2005/Atom'>
             ...
         </pubsub>
         
        Parameters:
        node - The node.
        id - The id.
        item - The item to publish.
        options - The publish options.
        Returns:
        The pubsub instance.
        See Also:
        7.1 Publish an Item to a Node
      • withRetract

        public static PubSub withRetract​(String node,
                                         String id,
                                         boolean notify)
        Creates a pubsub element with a <retract/> child element.

        Sample:

        
         <pubsub xmlns='http://jabber.org/protocol/pubsub'>
             <retract node='princely_musings' notify='true'>
                 <item id='ae890ac52d0df67ed7cfdf51b644e901'/>
             </retract>
         </pubsub>
         
        Parameters:
        node - The node.
        id - The id.
        notify - The notify attribute.
        Returns:
        The pubsub instance.
        See Also:
        7.2 Delete an Item from a Node
      • getSubscription

        public final Subscription getSubscription()
      • getItems

        public final List<Item> getItems()
      • getConfigurationForm

        public final DataForm getConfigurationForm()
      • getNode

        public final String getNode()
      • getPublishOptions

        public final DataForm getPublishOptions()