Class CollectionNode

java.lang.Object
org.jivesoftware.openfire.pubsub.Node
org.jivesoftware.openfire.pubsub.CollectionNode
All Implemented Interfaces:
Externalizable, Serializable, Cacheable

public class CollectionNode extends Node
A type of node that contains nodes and/or other collections but no published items. Collections provide the foundation entity to provide a means of representing hierarchical node structures.
Author:
Matt Tucker
See Also:
  • Constructor Details

  • Method Details

    • configure

      protected void configure(org.xmpp.forms.FormField field) throws NotAcceptableException
      Description copied from class: Node
      Configures the node with the completed form field. Fields that are common to leaf and collection nodes are handled in Node.configure(org.xmpp.forms.DataForm). Subclasses should implement this method in order to configure the node with form fields specific to the node type.
      Specified by:
      configure in class Node
      Parameters:
      field - the form field specific to the node type.
      Throws:
      NotAcceptableException - if field cannot be configured because of invalid data.
    • addFormFields

      protected void addFormFields(org.xmpp.forms.DataForm form, Locale preferredLocale, boolean isEditing)
      Description copied from class: Node
      Adds the required form fields to the specified form. When editing is true the field type and a label is included in each field. The form being completed will contain the current node configuration. This information can be used for editing the node or for notifying that the node configuration has changed.
      Overrides:
      addFormFields in class Node
      Parameters:
      form - the form containing the node configuration.
      preferredLocale - the preferred locale to localize the form.
      isEditing - true when the form will be used to edit the node configuration.
    • deletingNode

      protected void deletingNode()
      Description copied from class: Node
      Notification message indicating that the node is being deleted. Subclasses should implement this method to delete any subclass specific information.
      Specified by:
      deletingNode in class Node
    • isCollectionNode

      public boolean isCollectionNode()
      Description copied from class: Node
      Returns true if this node is a node container. Node containers may only contain nodes but are not allowed to get items published.
      Overrides:
      isCollectionNode in class Node
      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 collection node.
      Overrides:
      isChildNode in class 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 collection node or a descendant of the children nodes.
      Overrides:
      isDescendantNode in class Node
      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 collection node or a descendant of the children nodes.
    • getNodes

      public Collection<Node> getNodes()
      Description copied from class: Node
      Returns the list of nodes contained by this node. Only CollectionNode may contain other nodes.
      Overrides:
      getNodes in class Node
      Returns:
      the list of nodes contained by this node.
    • getAssociationPolicy

      public CollectionNode.LeafNodeAssociationPolicy getAssociationPolicy()
      Returns the policy that defines who may associate leaf nodes with a collection.
      Returns:
      the policy that defines who may associate leaf nodes with a collection.
    • getAssociationTrusted

      public Collection<org.xmpp.packet.JID> getAssociationTrusted()
      Returns the users that are allowed to associate leaf nodes with this collection node. This collection is going to be used only when the associationPolicy is whitelist.
      Returns:
      the users that are allowed to associate leaf nodes with this collection node.
    • getMaxLeafNodes

      public int getMaxLeafNodes()
      Returns the max number of leaf nodes that this collection node might have. A value of -1 means that there is no limit.
      Returns:
      the max number of leaf nodes that this collection node might have.
    • isAssociationAllowed

      public boolean isAssociationAllowed(org.xmpp.packet.JID user)
      Returns true if the specified user is allowed to associate a leaf node with this node. The decision is taken based on the association policy that the node is using.
      Parameters:
      user - the user trying to associate a leaf node with this node.
      Returns:
      true if the specified user is allowed to associate a leaf node with this node.
    • isMaxLeafNodeReached

      public boolean isMaxLeafNodeReached()
      Returns true if the max number of leaf nodes associated with this node has reached to the maximum allowed.
      Returns:
      true if the max number of leaf nodes associated with this node has reached to the maximum allowed.
    • getCachedSize

      public int getCachedSize() throws CannotCalculateSizeException
      Description copied from interface: Cacheable
      Returns the approximate size of the Object in bytes. The size should be considered to be a best estimate of how much memory the Object occupies and may be based on empirical trials or dynamic calculations.

      Specified by:
      getCachedSize in interface Cacheable
      Overrides:
      getCachedSize in class Node
      Returns:
      the size of the Object in bytes.
      Throws:
      CannotCalculateSizeException - if the size cannot be calculated
    • writeExternal

      public void writeExternal(ObjectOutput out) throws IOException
      Specified by:
      writeExternal in interface Externalizable
      Overrides:
      writeExternal in class Node
      Throws:
      IOException
    • readExternal

      public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
      Specified by:
      readExternal in interface Externalizable
      Overrides:
      readExternal in class Node
      Throws:
      IOException
      ClassNotFoundException
    • getLogger

      protected org.slf4j.Logger getLogger()
      Specified by:
      getLogger in class Node