Class AbstractGroupProvider

    • Constructor Detail

      • AbstractGroupProvider

        public AbstractGroupProvider()
    • Method Detail

      • addMember

        public void addMember​(String groupName,
                              org.xmpp.packet.JID user,
                              boolean administrator)
                       throws GroupNotFoundException
        Description copied from interface: GroupProvider
        Adds an entity to a group (optional operation). Implementations should use the bare JID representation of the JID passed as an argument to this method.
        Specified by:
        addMember in interface GroupProvider
        Parameters:
        groupName - the group to add the member to
        user - the (bare) JID of the entity to add
        administrator - True if the member is an administrator of the group
        Throws:
        UnsupportedOperationException - if the provider is read only
        GroupNotFoundException
      • updateMember

        public void updateMember​(String groupName,
                                 org.xmpp.packet.JID user,
                                 boolean administrator)
                          throws GroupNotFoundException
        Description copied from interface: GroupProvider
        Updates the privileges of an entity in a group. Implementations should use the bare JID representation of the JID passed as an argument to this method.
        Specified by:
        updateMember in interface GroupProvider
        Parameters:
        groupName - the group where the change happened
        user - the (bare) JID of the entity with new privileges
        administrator - True if the member is an administrator of the group
        Throws:
        UnsupportedOperationException - if the provider is read only
        GroupNotFoundException
      • deleteMember

        public void deleteMember​(String groupName,
                                 org.xmpp.packet.JID user)
        Description copied from interface: GroupProvider
        Deletes an entity from a group (optional operation). Implementations should use the bare JID representation of the JID passed as an argument to this method.
        Specified by:
        deleteMember in interface GroupProvider
        Parameters:
        groupName - the group name.
        user - the (bare) JID of the entity to delete.
        Throws:
        UnsupportedOperationException - if the provider is read only
      • isReadOnly

        public boolean isReadOnly()
        Always true for a read-only provider
        Specified by:
        isReadOnly in interface GroupProvider
        Returns:
        true if the user provider is read-only.
      • isSearchSupported

        public boolean isSearchSupported()
        Returns true if the provider supports group search capability. This implementation always returns false.
        Specified by:
        isSearchSupported in interface GroupProvider
        Returns:
        true if searching is supported.
      • search

        public Collection<String> search​(String query)
        Returns a collection of group search results. This implementation returns an empty collection.
        Specified by:
        search in interface GroupProvider
        Parameters:
        query - the search string for group names.
        Returns:
        all groups that match the search.
      • search

        public Collection<String> search​(String query,
                                         int startIndex,
                                         int numResults)
        Returns a collection of group search results. This implementation returns an empty collection.
        Specified by:
        search in interface GroupProvider
        Parameters:
        query - the search string for group names.
        startIndex - start index in results.
        numResults - number of results to return.
        Returns:
        all groups that match the search.
      • getSharedGroupNames

        public Collection<String> getSharedGroupNames()
        Returns the name of the groups that are shared groups.
        Specified by:
        getSharedGroupNames in interface GroupProvider
        Returns:
        the name of the groups that are shared groups.
      • hasSharedGroups

        public boolean hasSharedGroups()
        Checks if any shared groups exists. No distinction is made between the type of shared group: any group that is shared (with anything other than 'nobody') qualifies.
        Returns:
        true if at least one shared group exists, otherwise false.
      • getSharedGroupNames

        public Collection<String> getSharedGroupNames​(org.xmpp.packet.JID user)
        Description copied from interface: GroupProvider
        Returns an unmodifiable Collection of all shared groups in the system for a given user. Implementations should use the bare JID representation of the JID passed as an argument to this method.
        Specified by:
        getSharedGroupNames in interface GroupProvider
        Parameters:
        user - The bare JID for the user (node@domain)
        Returns:
        unmodifiable Collection of all shared groups in the system for a given user.
      • getVisibleGroupNames

        public Collection<String> getVisibleGroupNames​(String userGroup)
        Description copied from interface: GroupProvider
        Returns an unmodifiable Collection of groups that are visible to the members of the given group.
        Specified by:
        getVisibleGroupNames in interface GroupProvider
        Parameters:
        userGroup - The given group
        Returns:
        unmodifiable Collection of group names that are visible to the given group.
      • search

        public Collection<String> search​(String key,
                                         String value)
        Description copied from interface: GroupProvider
        Returns the names of groups that have a property matching the given key/value pair. This provides a simple extensible search mechanism for providers with differing property sets and storage models. The semantics of the key/value matching (wildcard support, scoping, etc.) are unspecified by the interface and may vary for each implementation. Before searching or showing a search UI, use the GroupProvider.isSearchSupported() method to ensure that searching is supported.
        Specified by:
        search in interface GroupProvider
        Parameters:
        key - The name of a group property (e.g. "sharedRoster.showInRoster")
        value - The value to match for the given property
        Returns:
        unmodifiable Collection of group names that match the given key/value pair.
      • getPublicSharedGroupNames

        public Collection<String> getPublicSharedGroupNames()
        Description copied from interface: GroupProvider
        Returns an unmodifiable Collection of all public shared groups in the system.
        Specified by:
        getPublicSharedGroupNames in interface GroupProvider
        Returns:
        unmodifiable Collection of all public shared groups in the system.
      • isSharingSupported

        public boolean isSharingSupported()
        Description copied from interface: GroupProvider
        Returns true if this GroupProvider allows group sharing. Shared groups enable roster sharing.
        Specified by:
        isSharingSupported in interface GroupProvider
        Returns:
        true if the group provider supports group sharing.
      • loadProperties

        public PersistableMap<String,​String> loadProperties​(Group group)
        Returns a custom Map that updates the database whenever a property value is added, changed, or deleted.
        Specified by:
        loadProperties in interface GroupProvider
        Parameters:
        group - The target group
        Returns:
        The properties for the given group