Class Privacy

  • All Implemented Interfaces:
    Element, IqView, NamedElement, StanzaView, TopLevelStreamElement, XmlElement, XmlLangElement

    public class Privacy
    extends IQ
    A Privacy IQ Packet, is used by the PrivacyListManager and PrivacyProvider to allow and block communications from other users. It contains the appropriate structure to suit user-defined privacy lists. Different configured Privacy packages are used in the server and manager communication in order to:
    • Retrieving one's privacy lists.
    • Adding, removing, and editing one's privacy lists.
    • Setting, changing, or declining active lists.
    • Setting, changing, or declining the default list (i.e., the list that is active by default).
    Privacy Items can handle different kind of blocking communications based on JID, group, subscription type or globally PrivacyItem
    • Constructor Detail

    • Method Detail

      • deletePrivacyList

        public void deletePrivacyList​(String listName)
        Deletes an existing privacy list. If the privacy list being deleted was the default list then the user will end up with no default list. Therefore, the user will have to set a new default list.
        Parameters:
        listName - the name of the list being deleted.
      • getItem

        public PrivacyItem getItem​(String listName,
                                   UInt32 order)
        Returns the privacy item in the specified order.
        Parameters:
        listName - the name of the privacy list.
        order - the order of the element.
        Returns:
        a List with PrivacyItem
      • changeDefaultList

        public boolean changeDefaultList​(String newDefault)
        Sets a given privacy list as the new user default list.
        Parameters:
        newDefault - the new default privacy list.
        Returns:
        if the default list was changed.
      • deleteList

        public void deleteList​(String listName)
        Remove the list.
        Parameters:
        listName - name of the list to remove.
      • getActiveName

        public String getActiveName()
        Returns the name associated with the active list set for the session. Communications will be verified against the active list.
        Returns:
        the name of the active list.
      • setActiveName

        public void setActiveName​(String activeName)
        Sets the name associated with the active list set for the session. Communications will be verified against the active list.
        Parameters:
        activeName - is the name of the active list.
      • getDefaultName

        public String getDefaultName()
        Returns the name of the default list that applies to the user as a whole. Default list is processed if there is no active list set for the target session/resource to which a stanza is addressed, or if there are no current sessions for the user.
        Returns:
        the name of the default list.
      • setDefaultName

        public void setDefaultName​(String defaultName)
        Sets the name of the default list that applies to the user as a whole. Default list is processed if there is no active list set for the target session/resource to which a stanza is addressed, or if there are no current sessions for the user. If there is no default list set, then all Privacy Items are processed.
        Parameters:
        defaultName - is the name of the default list.
      • getItemLists

        public Map<String,​List<PrivacyItem>> getItemLists()
        Returns the collection of privacy list that the user holds. A Privacy List contains a set of rules that define if communication with the list owner is allowed or denied. Users may have zero, one or more privacy items.
        Returns:
        a map where the key is the name of the list and the value the collection of privacy items.
      • isDeclineActiveList

        public boolean isDeclineActiveList()
        Returns whether the receiver allows or declines the use of an active list.
        Returns:
        the decline status of the list.
      • setDeclineActiveList

        public void setDeclineActiveList​(boolean declineActiveList)
        Sets whether the receiver allows or declines the use of an active list.
        Parameters:
        declineActiveList - indicates if the receiver declines the use of an active list.
      • isDeclineDefaultList

        public boolean isDeclineDefaultList()
        Returns whether the receiver allows or declines the use of a default list.
        Returns:
        the decline status of the list.
      • setDeclineDefaultList

        public void setDeclineDefaultList​(boolean declineDefaultList)
        Sets whether the receiver allows or declines the use of a default list.
        Parameters:
        declineDefaultList - indicates if the receiver declines the use of a default list.
      • getPrivacyListNames

        public Set<StringgetPrivacyListNames()
        Returns all the list names the user has defined to group restrictions.
        Returns:
        a Set with Strings containing every list names.
      • getIQChildElementBuilder

        protected IQ.IQChildElementXmlStringBuilder getIQChildElementBuilder​(IQ.IQChildElementXmlStringBuilder buf)
        Description copied from class: IQ
        This method must be overwritten by IQ subclasses to create their child content. It is important you don't use the builder to add the final end tag. This will be done automatically by IQ.IQChildElementXmlStringBuilder after eventual existing ExtensionElements have been added.

        For example to create an IQ with a extra attribute and an additional child element

         
         <iq to='foo@example.org' id='123'>
           <bar xmlns='example:bar' extraAttribute='blaz'>
              <extraElement>elementText</extraElement>
           </bar>
         </iq>
         
         
        the body of the getIQChildElementBuilder looks like
         
         // The builder 'xml' will already have the child element and the 'xmlns' attribute added
         // So the current builder state is "<bar xmlns='example:bar'"
         xml.attribute("extraAttribute", "blaz");
         xml.rightAngleBracket();
         xml.element("extraElement", "elementText");
         // Do not close the 'bar' attribute by calling xml.closeElement('bar')
         
         
        If your IQ only contains attributes and no child elements, i.e. it can be represented as empty element, then you can mark it as such.
         xml.attribute("myAttribute", "myAttributeValue");
         xml.setEmptyElement();
         
        If your IQ does not contain any attributes or child elements (besides ExtensionElements), consider sub-classing SimpleIQ instead.
        Specified by:
        getIQChildElementBuilder in class IQ
        Parameters:
        buf - a pre-created builder which already has the child element and the 'xmlns' attribute set.
        Returns:
        the build to create the IQ child content.