Openfire 3.9.3 Javadoc

org.jivesoftware.openfire.pubsub
Class Node

java.lang.Object
  extended by org.jivesoftware.openfire.pubsub.Node
Direct Known Subclasses:
CollectionNode, LeafNode

public abstract class Node
extends Object

A virtual location to which information can be published and from which event notifications and/or payloads can be received (in other pubsub systems, this may be labelled a "topic").

Author:
Matt Tucker

Nested Class Summary
static class Node.ItemReplyPolicy
          Policy that defines whether owners or publisher should receive replies to items.
 
Field Summary
protected  AccessModel accessModel
          Access model that specifies who is allowed to subscribe and retrieve items.
protected  Collection<NodeAffiliate> affiliates
          The JIDs of those who have an affiliation with this node.
protected  String bodyXSLT
          The URL of an XSL transformation which can be applied to payloads in order to generate an appropriate message body element.
protected  Collection<org.xmpp.packet.JID> contacts
          The JIDs of those to contact with questions.
protected  Date creationDate
          The datetime when the node was created.
protected  org.xmpp.packet.JID creator
          The JID of the node creator.
protected  String dataformXSLT
          The URL of an XSL transformation which can be applied to the payload format in order to generate a valid Data Forms result that the client could display using a generic Data Forms rendering engine.
protected  boolean deliverPayloads
          Flag that indicates whether to deliver payloads with event notifications.
protected  String description
          A description of the node.
protected  String language
          The default language of the node.
protected  String name
          The name of the node.
protected  String nodeID
          The unique identifier for a node within the context of a pubsub service.
protected  boolean notifyConfigChanges
          Flag that indicates whether to notify subscribers when the node configuration changes.
protected  boolean notifyDelete
          Flag that indicates whether to notify subscribers when the node is deleted.
protected  boolean notifyRetract
          Flag that indicates whether to notify subscribers when items are removed from the node.
protected  CollectionNode parent
          Keeps the Node that is containing this node.
protected  String payloadType
          The type of payload data to be provided at the node.
protected  boolean presenceBasedDelivery
          Flag that indicates whether to deliver notifications to available users only.
protected  PublisherModel publisherModel
          Publisher model that specifies who is allowed to publish items to the node.
static String PUBSUB_SVC_ID
           
protected  Node.ItemReplyPolicy replyPolicy
          Policy that defines whether owners or publisher should receive replies to items.
protected  Collection<org.xmpp.packet.JID> replyRooms
          List of multi-user chat rooms to specify for replyroom.
protected  Collection<org.xmpp.packet.JID> replyTo
          List of JID(s) to specify for replyto.
protected  Collection<String> rosterGroupsAllowed
          The roster group(s) allowed to subscribe and retrieve items.
protected  PubSubService service
          Reference to the publish and subscribe service.
protected  boolean subscriptionConfigurationRequired
          Flag that indicates whether new subscriptions should be configured to be active.
protected  boolean subscriptionEnabled
          Flag that indicates that subscribing and unsubscribing are enabled.
protected  Map<String,NodeSubscription> subscriptionsByID
          Map that contains the current subscriptions to the node.
protected  Map<String,NodeSubscription> subscriptionsByJID
          Map that contains the current subscriptions to the node.
 
Method Summary
 void addAffiliate(NodeAffiliate affiliate)
           
protected  void addFormFields(org.xmpp.forms.DataForm form, boolean isEditing)
          Adds the required form fields to the specified form.
 NodeAffiliate addNoneAffiliation(org.xmpp.packet.JID jid)
          Adds a new affiliation or updates an existing affiliation of the specified entity JID to become a none affiliate.
 NodeAffiliate addOutcast(org.xmpp.packet.JID jid)
          Sets that the specified entity is an outcast of the node.
 NodeAffiliate addOwner(org.xmpp.packet.JID jid)
          Adds a new affiliation or updates an existing affiliation of the specified entity JID to become a node owner.
 NodeAffiliate addPublisher(org.xmpp.packet.JID jid)
          Adds a new affiliation or updates an existing affiliation of the specified entity JID to become a node publisher.
 void addSubscription(NodeSubscription subscription)
           
 void approveSubscription(NodeSubscription subscription, boolean approved)
          Approves or cancels a subscriptions that was pending to be approved by a node owner.
protected  void broadcastNodeEvent(org.xmpp.packet.Message message, boolean includeAll)
          Broadcasts a node event to subscribers of the node.
 void cancelSubscription(NodeSubscription subscription)
          Cancels an existing subscription to the node.
 void cancelSubscription(NodeSubscription subscription, boolean sendToCluster)
          Cancels an existing subscription to the node.
protected  void changeParent(CollectionNode newParent)
          Changes the parent node of this node.
 void configure(org.xmpp.forms.DataForm completedForm)
          Changes the node configuration based on the completed data form.
protected abstract  void configure(org.xmpp.forms.FormField field)
          Configures the node with the completed form field.
 void createSubscription(org.xmpp.packet.IQ originalIQ, org.xmpp.packet.JID owner, org.xmpp.packet.JID subscriber, boolean authorizationRequired, org.xmpp.forms.DataForm options)
          Creates a new subscription and possibly a new affiliate if the owner of the subscription does not have any existing affiliation with the node.
 boolean delete()
          Deletes this node from memory and the database.
protected abstract  void deletingNode()
          Notification message indicating that the node is being deleted.
 boolean equals(Object obj)
           
 AccessModel getAccessModel()
          Returns the access model that specifies who is allowed to subscribe and retrieve items.
 NodeAffiliate getAffiliate(org.xmpp.packet.JID jid)
          Returns the NodeAffiliate of the specified JID or null if none was found.
 Collection<NodeSubscription> getAllSubscriptions()
          Returns all subscriptions to the node.
 String getBodyXSLT()
          Returns the URL of an XSL transformation which can be applied to payloads in order to generate an appropriate message body element.
 org.xmpp.forms.DataForm getConfigurationForm()
          Returns a data form used by the owner to edit the node configuration.
 Collection<org.xmpp.packet.JID> getContacts()
          Returns the JIDs of those to contact with questions.
 Date getCreationDate()
          Returns the datetime when the node was created.
 org.xmpp.packet.JID getCreator()
          Returns the JID of the node creator.
 String getDataformXSLT()
          Returns the URL of an XSL transformation which can be applied to the payload format in order to generate a valid Data Forms result that the client could display using a generic Data Forms rendering engine.
 String getDescription()
          Returns the description of the node.
 String getLanguage()
          Returns the default language of the node.
 PublishedItem getLastPublishedItem()
          Returns the last PublishedItem that was published to the node or null if the node does not have published items.
 org.xmpp.forms.DataForm getMetadataForm()
          Returns a data form containing the node configuration that is going to be used for service discovery.
 Date getModificationDate()
          Returns the last date when the ndoe's configuration was modified.
 String getName()
          Returns the name of the node.
 String getNodeID()
          Returns the unique identifier for a node within the context of a pubsub service.
 Collection<Node> getNodes()
          Returns the list of nodes contained by this node.
 Collection<org.xmpp.packet.JID> getOwners()
          Returns a collection with the JID of the node owners.
 CollectionNode getParent()
          Returns the collection node that is containing this node.
 Collection<CollectionNode> getParents()
          Returns the complete hierarchy of parents of this node.
 String getPayloadType()
          Returns the type of payload data to be provided at the node.
 Collection<NodeSubscription> getPendingSubscriptions()
          Returns a list with the subscriptions to the node that are pending to be approved by a node owner.
 PublishedItem getPublishedItem(String itemID)
          Returns the PublishedItem whose ID matches the specified item ID or null if none was found.
 List<PublishedItem> getPublishedItems()
          Returns the list of PublishedItem that were published to the node.
 List<PublishedItem> getPublishedItems(int recentItems)
          Returns a list of PublishedItem with the most recent N items published to the node.
 PublisherModel getPublisherModel()
          Returns the publisher model that specifies who is allowed to publish items to the node.
 Collection<org.xmpp.packet.JID> getPublishers()
          Returns a collection with the JID of the enitities with an affiliation of NodeAffiliate.Affiliation.publisher.
 Node.ItemReplyPolicy getReplyPolicy()
           
 Collection<org.xmpp.packet.JID> getReplyRooms()
           
 Collection<org.xmpp.packet.JID> getReplyTo()
           
 Collection<String> getRosterGroupsAllowed()
          Returns the roster group(s) allowed to subscribe and retrieve items.
 PubSubService getService()
          Returns the PubSubService to which this node belongs.
 NodeSubscription getSubscription(org.xmpp.packet.JID subscriberJID)
          Returns the subscription whose subscription JID matches the specified JID or null if none was found.
 Collection<NodeSubscription> getSubscriptions(org.xmpp.packet.JID owner)
          Returns the list of subscriptions owned by the specified user.
 int hashCode()
           
 boolean isAdmin(org.xmpp.packet.JID user)
          Returns true if the specified user is allowed to administer the node.
 boolean isChildNode(Node child)
          Returns true if the specified node is a first-level children of this node.
 boolean isCollectionNode()
          Returns true if this node is a node container.
 boolean isDescendantNode(Node child)
          Returns true if the specified node is a direct child node of this node or a descendant of the children nodes.
 boolean isMultipleSubscriptionsEnabled()
          Returns true if a user may have more than one subscription with the node.
 boolean isNotifiedOfConfigChanges()
          Returns true if subscribers will be notified when the node configuration changes.
 boolean isNotifiedOfDelete()
          Returns true if subscribers will be notified when the node is deleted.
 boolean isNotifiedOfRetract()
          Returns true if subscribers will be notified when items are removed from the node.
 boolean isPayloadDelivered()
          Returns true if event notifications will include payloads.
 boolean isPresenceBasedDelivery()
          Returns true if notifications are going to be delivered to available users only.
 boolean isPresenceBasedDelivery(org.xmpp.packet.JID user)
          Returns true if notifications to the specified user will be delivered when the user is online.
 boolean isRootCollectionNode()
          Returns true if this node is the root node of the pubsub service.
 boolean isSendItemSubscribe()
          Returns true if the last published item is going to be sent to new subscribers.
 boolean isSubscriptionConfigurationRequired()
          Returns true if new subscriptions should be configured to be active.
 boolean isSubscriptionEnabled()
          Returns true if users are allowed to subscribe and unsubscribe.
 void removeOutcast(org.xmpp.packet.JID jid)
          Removes the banning to subscribe to the node for the specified entity.
 void removeOwner(org.xmpp.packet.JID jid)
          Removes the owner affiliation of the specified entity JID.
 void removePublisher(org.xmpp.packet.JID jid)
          Removes the publisher affiliation of the specified entity JID.
 void saveToDB()
          Saves the node configuration to the backend store.
protected  void sendEventNotification(org.xmpp.packet.JID subscriberJID, org.xmpp.packet.Message notification, Collection<String> subIDs)
          Sends an event notification to the specified subscriber.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

PUBSUB_SVC_ID

public static final String PUBSUB_SVC_ID

service

protected PubSubService service
Reference to the publish and subscribe service.


parent

protected CollectionNode parent
Keeps the Node that is containing this node.


nodeID

protected String nodeID
The unique identifier for a node within the context of a pubsub service.


deliverPayloads

protected boolean deliverPayloads
Flag that indicates whether to deliver payloads with event notifications.


replyPolicy

protected Node.ItemReplyPolicy replyPolicy
Policy that defines whether owners or publisher should receive replies to items.


notifyConfigChanges

protected boolean notifyConfigChanges
Flag that indicates whether to notify subscribers when the node configuration changes.


notifyDelete

protected boolean notifyDelete
Flag that indicates whether to notify subscribers when the node is deleted.


notifyRetract

protected boolean notifyRetract
Flag that indicates whether to notify subscribers when items are removed from the node.


presenceBasedDelivery

protected boolean presenceBasedDelivery
Flag that indicates whether to deliver notifications to available users only.


publisherModel

protected PublisherModel publisherModel
Publisher model that specifies who is allowed to publish items to the node.


subscriptionEnabled

protected boolean subscriptionEnabled
Flag that indicates that subscribing and unsubscribing are enabled.


accessModel

protected AccessModel accessModel
Access model that specifies who is allowed to subscribe and retrieve items.


rosterGroupsAllowed

protected Collection<String> rosterGroupsAllowed
The roster group(s) allowed to subscribe and retrieve items.


replyRooms

protected Collection<org.xmpp.packet.JID> replyRooms
List of multi-user chat rooms to specify for replyroom.


replyTo

protected Collection<org.xmpp.packet.JID> replyTo
List of JID(s) to specify for replyto.


payloadType

protected String payloadType
The type of payload data to be provided at the node. Usually specified by the namespace of the payload (if any).


bodyXSLT

protected String bodyXSLT
The URL of an XSL transformation which can be applied to payloads in order to generate an appropriate message body element.


dataformXSLT

protected String dataformXSLT
The URL of an XSL transformation which can be applied to the payload format in order to generate a valid Data Forms result that the client could display using a generic Data Forms rendering engine.


creationDate

protected Date creationDate
The datetime when the node was created.


creator

protected org.xmpp.packet.JID creator
The JID of the node creator.


description

protected String description
A description of the node.


language

protected String language
The default language of the node.


contacts

protected Collection<org.xmpp.packet.JID> contacts
The JIDs of those to contact with questions.


name

protected String name
The name of the node.


subscriptionConfigurationRequired

protected boolean subscriptionConfigurationRequired
Flag that indicates whether new subscriptions should be configured to be active.


affiliates

protected Collection<NodeAffiliate> affiliates
The JIDs of those who have an affiliation with this node. When subscriptionModel is whitelist then this collection acts as the white list (unless user is an outcast)


subscriptionsByID

protected Map<String,NodeSubscription> subscriptionsByID
Map that contains the current subscriptions to the node. A user may have more than one subscription. Each subscription is uniquely identified by its ID. Key: Subscription ID, Value: the subscription.


subscriptionsByJID

protected Map<String,NodeSubscription> subscriptionsByJID
Map that contains the current subscriptions to the node. This map should be used only when node is not configured to allow multiple subscriptions. When multiple subscriptions is not allowed the subscriptions can be searched by the subscriber JID. Otherwise searches should be done using the subscription ID. Key: Subscriber full JID, Value: the subscription.

Method Detail

addOwner

public NodeAffiliate addOwner(org.xmpp.packet.JID jid)
Adds a new affiliation or updates an existing affiliation of the specified entity JID to become a node owner.

Parameters:
jid - the JID of the user being added as a node owner.
Returns:
the newly created or modified affiliation to the node.

removeOwner

public void removeOwner(org.xmpp.packet.JID jid)
Removes the owner affiliation of the specified entity JID. If the user that is no longer an owner was subscribed to the node then his affiliation will be of type NodeAffiliate.Affiliation.none.

Parameters:
jid - the JID of the user being removed as a node owner.

addPublisher

public NodeAffiliate addPublisher(org.xmpp.packet.JID jid)
Adds a new affiliation or updates an existing affiliation of the specified entity JID to become a node publisher.

Parameters:
jid - the JID of the user being added as a node publisher.
Returns:
the newly created or modified affiliation to the node.

removePublisher

public void removePublisher(org.xmpp.packet.JID jid)
Removes the publisher affiliation of the specified entity JID. If the user that is no longer a publisher was subscribed to the node then his affiliation will be of type NodeAffiliate.Affiliation.none.

Parameters:
jid - the JID of the user being removed as a node publisher.

addNoneAffiliation

public NodeAffiliate addNoneAffiliation(org.xmpp.packet.JID jid)
Adds a new affiliation or updates an existing affiliation of the specified entity JID to become a none affiliate. Affiliates of type none are allowed to subscribe to the node.

Parameters:
jid - the JID of the user with affiliation "none".
Returns:
the newly created or modified affiliation to the node.

addOutcast

public NodeAffiliate addOutcast(org.xmpp.packet.JID jid)
Sets that the specified entity is an outcast of the node. Outcast entities are not able to publish or subscribe to the node. Existing subscriptions will be deleted.

Parameters:
jid - the JID of the user that is no longer able to publish or subscribe to the node.
Returns:
the newly created or modified affiliation to the node.

removeOutcast

public void removeOutcast(org.xmpp.packet.JID jid)
Removes the banning to subscribe to the node for the specified entity.

Parameters:
jid - the JID of the user that is no longer an outcast.

getSubscriptions

public Collection<NodeSubscription> getSubscriptions(org.xmpp.packet.JID owner)
Returns the list of subscriptions owned by the specified user. The subscription owner may have more than one subscription based on isMultipleSubscriptionsEnabled(). Each subscription may have a different subscription JID if the owner wants to receive notifications in different resources (or even JIDs).

Parameters:
owner - the owner of the subscriptions.
Returns:
the list of subscriptions owned by the specified user.

getAllSubscriptions

public Collection<NodeSubscription> getAllSubscriptions()
Returns all subscriptions to the node. If multiple subscriptions are enabled, this method returns the subscriptions by subId, otherwise it returns the subscriptions by JID.

Returns:
All subscriptions to the node.

getAffiliate

public NodeAffiliate getAffiliate(org.xmpp.packet.JID jid)
Returns the NodeAffiliate of the specified JID or null if none was found. Users that have a subscription with the node will ALWAYS have an affiliation even if the affiliation is of type none.

Parameters:
jid - the JID of the user to look his affiliation with this node.
Returns:
the NodeAffiliate of the specified JID or null if none was found.

getOwners

public Collection<org.xmpp.packet.JID> getOwners()
Returns a collection with the JID of the node owners. Entities that are node owners have an affiliation of NodeAffiliate.Affiliation.owner. Owners are allowed to purge and delete the node. Moreover, owners may also get The collection can be modified since it represents a snapshot.

Returns:
a collection with the JID of the node owners.

getPublishers

public Collection<org.xmpp.packet.JID> getPublishers()
Returns a collection with the JID of the enitities with an affiliation of NodeAffiliate.Affiliation.publisher. When using the publisher model OpenPublisher anyone may publish to the node so this collection may be empty or may not contain the complete list of publishers. The returned collection can be modified since it represents a snapshot.

Returns:
a collection with the JID of the enitities with an affiliation of publishers.

configure

public void configure(org.xmpp.forms.DataForm completedForm)
               throws NotAcceptableException
Changes the node configuration based on the completed data form. Only owners or sysadmins are allowed to change the node configuration. The completed data form cannot remove all node owners. An exception is going to be thrown if the new form tries to leave the node without owners.

Parameters:
completedForm - the completed data form.
Throws:
NotAcceptableException - if completed data form tries to leave the node without owners.

configure

protected abstract void configure(org.xmpp.forms.FormField field)
                           throws NotAcceptableException
Configures the node with the completed form field. Fields that are common to leaf and collection nodes are handled in configure(org.xmpp.forms.DataForm). Subclasses should implement this method in order to configure the node with form fields specific to the node type.

Parameters:
field - the form field specific to the node type.
Throws:
NotAcceptableException - if field cannot be configured because of invalid data.

getConfigurationForm

public org.xmpp.forms.DataForm getConfigurationForm()
Returns a data form used by the owner to edit the node configuration.

Returns:
data form used by the owner to edit the node configuration.

addFormFields

protected void addFormFields(org.xmpp.forms.DataForm form,
                             boolean isEditing)
Adds the required form fields to the specified form. When editing is true the field type and a label is included in each fields. The form being completed will contain the current node configuration. This information can be used for editing the node or for notifing that the node configuration has changed.

Parameters:
form - the form containing the node configuration.
isEditing - true when the form will be used to edit the node configuration.

getMetadataForm

public org.xmpp.forms.DataForm getMetadataForm()
Returns a data form containing the node configuration that is going to be used for service discovery.

Returns:
a data form with the node configuration.

isRootCollectionNode

public boolean isRootCollectionNode()
Returns true if this node is the root node of the pubsub service.

Returns:
true if this node is the root node of the pubsub service.

isMultipleSubscriptionsEnabled

public boolean isMultipleSubscriptionsEnabled()
Returns true if a user may have more than one subscription with the node. When multiple subscriptions is enabled each subscription request, event notification and unsubscription request should include a subid attribute. By default multiple subscriptions is enabled.

Returns:
true if a user may have more than one subscription with the node.

isCollectionNode

public boolean isCollectionNode()
Returns true if this node is a node container. Node containers may only contain nodes but are not allowed to get items published.

Returns:
true if this node is a node container.

isChildNode

public boolean isChildNode(Node child)
Returns true if the specified node is a first-level children of this node.

Parameters:
child - the node to check if it is a direct child of this node.
Returns:
true if the specified node is a first-level children of this collection node.

isDescendantNode

public boolean isDescendantNode(Node child)
Returns true if the specified node is a direct child node of this node or a descendant of the children nodes.

Parameters:
child - the node to check if it is a descendant of this node.
Returns:
true if the specified node is a direct child node of this node or a descendant of the children nodes.

isAdmin

public boolean isAdmin(org.xmpp.packet.JID user)
Returns true if the specified user is allowed to administer the node. Node administrator are allowed to retrieve the node configuration, change the node configuration, purge the node, delete the node and get the node affiliations and subscriptions.

Parameters:
user - the user to check if he is an admin.
Returns:
true if the specified user is allowed to administer the node.

getService

public PubSubService getService()
Returns the PubSubService to which this node belongs.

Returns:
the pubsub service.

getNodeID

public String getNodeID()
Returns the unique identifier for a node within the context of a pubsub service.

Returns:
the unique identifier for a node within the context of a pubsub service.

getName

public String getName()
Returns the name of the node. The node may not have a configured name. The node's name can be changed by submiting a completed data form.

Returns:
the name of the node.

isPayloadDelivered

public boolean isPayloadDelivered()
Returns true if event notifications will include payloads. Payloads are included when publishing new items. However, new items may not always include a payload depending on the node configuration. Nodes can be configured to not deliver payloads for performance reasons.

Returns:
true if event notifications will include payloads.

getReplyPolicy

public Node.ItemReplyPolicy getReplyPolicy()

isNotifiedOfConfigChanges

public boolean isNotifiedOfConfigChanges()
Returns true if subscribers will be notified when the node configuration changes.

Returns:
true if subscribers will be notified when the node configuration changes.

isNotifiedOfDelete

public boolean isNotifiedOfDelete()
Returns true if subscribers will be notified when the node is deleted.

Returns:
true if subscribers will be notified when the node is deleted.

isNotifiedOfRetract

public boolean isNotifiedOfRetract()
Returns true if subscribers will be notified when items are removed from the node.

Returns:
true if subscribers will be notified when items are removed from the node.

isPresenceBasedDelivery

public boolean isPresenceBasedDelivery()
Returns true if notifications are going to be delivered to available users only.

Returns:
true if notifications are going to be delivered to available users only.

isPresenceBasedDelivery

public boolean isPresenceBasedDelivery(org.xmpp.packet.JID user)
Returns true if notifications to the specified user will be delivered when the user is online.

Parameters:
user - the JID of the affiliate that has to be subscribed to the node.
Returns:
true if notifications are going to be delivered when the user is online.

isSendItemSubscribe

public boolean isSendItemSubscribe()
Returns true if the last published item is going to be sent to new subscribers.

Returns:
true if the last published item is going to be sent to new subscribers.

getPublisherModel

public PublisherModel getPublisherModel()
Returns the publisher model that specifies who is allowed to publish items to the node.

Returns:
the publisher model that specifies who is allowed to publish items to the node.

isSubscriptionEnabled

public boolean isSubscriptionEnabled()
Returns true if users are allowed to subscribe and unsubscribe.

Returns:
true if users are allowed to subscribe and unsubscribe.

isSubscriptionConfigurationRequired

public boolean isSubscriptionConfigurationRequired()
Returns true if new subscriptions should be configured to be active. Inactive subscriptions will not get event notifications. However, subscribers will be notified when a node is deleted no matter the subscription status.

Returns:
true if new subscriptions should be configured to be active.

getAccessModel

public AccessModel getAccessModel()
Returns the access model that specifies who is allowed to subscribe and retrieve items.

Returns:
the access model that specifies who is allowed to subscribe and retrieve items.

getRosterGroupsAllowed

public Collection<String> getRosterGroupsAllowed()
Returns the roster group(s) allowed to subscribe and retrieve items. This information is going to be used only when using the RosterAccess access model.

Returns:
the roster group(s) allowed to subscribe and retrieve items.

getReplyRooms

public Collection<org.xmpp.packet.JID> getReplyRooms()

getReplyTo

public Collection<org.xmpp.packet.JID> getReplyTo()

getPayloadType

public String getPayloadType()
Returns the type of payload data to be provided at the node. Usually specified by the namespace of the payload (if any).

Returns:
the type of payload data to be provided at the node.

getBodyXSLT

public String getBodyXSLT()
Returns the URL of an XSL transformation which can be applied to payloads in order to generate an appropriate message body element.

Returns:
the URL of an XSL transformation which can be applied to payloads.

getDataformXSLT

public String getDataformXSLT()
Returns the URL of an XSL transformation which can be applied to the payload format in order to generate a valid Data Forms result that the client could display using a generic Data Forms rendering engine.

Returns:
the URL of an XSL transformation which can be applied to the payload format.

getCreationDate

public Date getCreationDate()
Returns the datetime when the node was created.

Returns:
the datetime when the node was created.

getModificationDate

public Date getModificationDate()
Returns the last date when the ndoe's configuration was modified.

Returns:
the last date when the ndoe's configuration was modified.

getCreator

public org.xmpp.packet.JID getCreator()
Returns the JID of the node creator. This is usually the sender's full JID of the IQ packet used for creating the node.

Returns:
the JID of the node creator.

getDescription

public String getDescription()
Returns the description of the node. This information is really optional and can be modified by submiting a completed data form with the new node configuration.

Returns:
the description of the node.

getLanguage

public String getLanguage()
Returns the default language of the node. This information is really optional and can be modified by submiting a completed data form with the new node configuration.

Returns:
the default language of the node.

getContacts

public Collection<org.xmpp.packet.JID> getContacts()
Returns the JIDs of those to contact with questions. This information is not used by the pubsub service. It is meant to be "discovered" by users and redirect any question to the returned people to contact.

Returns:
the JIDs of those to contact with questions.

getNodes

public Collection<Node> getNodes()
Returns the list of nodes contained by this node. Only CollectionNode may contain other nodes.

Returns:
the list of nodes contained by this node.

getParent

public CollectionNode getParent()
Returns the collection node that is containing this node. The only node that does not have a parent node is the root collection node.

Returns:
the collection node that is containing this node.

getParents

public Collection<CollectionNode> getParents()
Returns the complete hierarchy of parents of this node.

Returns:
the complete hierarchy of parents of this node.

saveToDB

public void saveToDB()
Saves the node configuration to the backend store.


addAffiliate

public void addAffiliate(NodeAffiliate affiliate)

addSubscription

public void addSubscription(NodeSubscription subscription)

getSubscription

public NodeSubscription getSubscription(org.xmpp.packet.JID subscriberJID)
Returns the subscription whose subscription JID matches the specified JID or null if none was found. Accessing subscriptions by subscription JID and not by subscription ID is only possible when the node does not allow multiple subscriptions from the same entity. If the node allows multiple subscriptions and this message is sent then an IllegalStateException exception is going to be thrown.

Parameters:
subscriberJID - the JID of the entity that receives event notifications.
Returns:
the subscription whose subscription JID matches the specified JID or null if none was found.
Throws:
IllegalStateException - If this message was used when the node supports multiple subscriptions.

delete

public boolean delete()
Deletes this node from memory and the database. Subscribers are going to be notified that the node has been deleted after the node was successfully deleted.

Returns:
true if the node was successfully deleted.

deletingNode

protected abstract void deletingNode()
Notification message indicating that the node is being deleted. Subclasses should implement this method to delete any subclass specific information.


changeParent

protected void changeParent(CollectionNode newParent)
Changes the parent node of this node. The node ID of the node will not be modified based on the new parent so pubsub implementations where node ID has a semantic meaning will end up affecting the meaning of the node hierarchy and possibly messing up the meaning of the hierarchy.

No notifications are sent due to the new parent adoption process.

Parameters:
newParent - the new parent node of this node.

broadcastNodeEvent

protected void broadcastNodeEvent(org.xmpp.packet.Message message,
                                  boolean includeAll)
Broadcasts a node event to subscribers of the node.

Parameters:
message - the message containing the node event.
includeAll - true if all subscribers will be notified no matter their subscriptions status or configuration.

sendEventNotification

protected void sendEventNotification(org.xmpp.packet.JID subscriberJID,
                                     org.xmpp.packet.Message notification,
                                     Collection<String> subIDs)
Sends an event notification to the specified subscriber. The event notification may include information about the affected subscriptions.

Parameters:
subscriberJID - the subscriber JID that will get the notification.
notification - the message to send to the subscriber.
subIDs - the list of affected subscription IDs or null when node does not allow multiple subscriptions.

createSubscription

public void createSubscription(org.xmpp.packet.IQ originalIQ,
                               org.xmpp.packet.JID owner,
                               org.xmpp.packet.JID subscriber,
                               boolean authorizationRequired,
                               org.xmpp.forms.DataForm options)
Creates a new subscription and possibly a new affiliate if the owner of the subscription does not have any existing affiliation with the node. The new subscription might require to be authorized by a node owner to be active. If new subscriptions are required to be configured before being active then the subscription state would be "unconfigured".

The originalIQ parameter may be null when using this API internally. When no IQ packet was sent then no IQ result will be sent to the sender. The rest of the functionality is the same.

Parameters:
originalIQ - the IQ packet sent by the entity to subscribe to the node or null when using this API internally.
owner - the JID of the affiliate.
subscriber - the JID where event notifications are going to be sent.
authorizationRequired - true if the new subscriptions needs to be authorized by a node owner.
options - the data form with the subscription configuration or null if subscriber didn't provide a configuration.

cancelSubscription

public void cancelSubscription(NodeSubscription subscription,
                               boolean sendToCluster)
Cancels an existing subscription to the node. If the subscriber does not have any other subscription to the node and his affiliation was of type none then remove the existing affiliation too.

Parameters:
subscription - the subscription to cancel.
sendToCluster - True to forward cancel order to cluster peers

cancelSubscription

public void cancelSubscription(NodeSubscription subscription)
Cancels an existing subscription to the node. If the subscriber does not have any other subscription to the node and his affiliation was of type none then remove the existing affiliation too.

Parameters:
subscription - the subscription to cancel.

getPublishedItem

public PublishedItem getPublishedItem(String itemID)
Returns the PublishedItem whose ID matches the specified item ID or null if none was found. Item ID may or may not exist and it depends on the node's configuration. When the node is configured to not include payloads in event notifications and published items are not persistent then item ID is not used. In this case a null value will always be returned.

Parameters:
itemID - the ID of the item to retrieve.
Returns:
the PublishedItem whose ID matches the specified item ID or null if none was found.

getPublishedItems

public List<PublishedItem> getPublishedItems()
Returns the list of PublishedItem that were published to the node. The returned collection cannot be modified. Collection nodes does not support publishing of items so an empty list will be returned in that case.

Returns:
the list of PublishedItem that were published to the node.

getPublishedItems

public List<PublishedItem> getPublishedItems(int recentItems)
Returns a list of PublishedItem with the most recent N items published to the node. The returned collection cannot be modified. Collection nodes does not support publishing of items so an empty list will be returned in that case.

Parameters:
recentItems - number of recent items to retrieve.
Returns:
a list of PublishedItem with the most recent N items published to the node.

getPendingSubscriptions

public Collection<NodeSubscription> getPendingSubscriptions()
Returns a list with the subscriptions to the node that are pending to be approved by a node owner. If the node is not using the access model AuthorizeAccess then the result will be an empty collection.

Returns:
a list with the subscriptions to the node that are pending to be approved by a node owner.

toString

public String toString()
Overrides:
toString in class Object

getLastPublishedItem

public PublishedItem getLastPublishedItem()
Returns the last PublishedItem that was published to the node or null if the node does not have published items. Collection nodes does not support publishing of items so a null will be returned in that case.

Returns:
the PublishedItem that was published to the node or null if the node does not have published items.

approveSubscription

public void approveSubscription(NodeSubscription subscription,
                                boolean approved)
Approves or cancels a subscriptions that was pending to be approved by a node owner. Subscriptions that were not approved will be deleted. Approved subscriptions will be activated (i.e. will be able to receive event notifications) as long as the subscriber is not required to configure the subscription.

Parameters:
subscription - the subscriptions that was approved or rejected.
approved - true when susbcription was approved. Otherwise the subscription was rejected.

hashCode

public int hashCode()
Overrides:
hashCode in class Object

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

Openfire 3.9.3 Javadoc

Copyright © 2003-2008 Jive Software.