Openfire 3.9.3 Javadoc

org.jivesoftware.openfire.group
Class AbstractGroupProvider

java.lang.Object
  extended by org.jivesoftware.openfire.group.AbstractGroupProvider
All Implemented Interfaces:
GroupProvider
Direct Known Subclasses:
ClearspaceGroupProvider, CrowdGroupProvider, DefaultGroupProvider, JDBCGroupProvider, LdapGroupProvider

public abstract class AbstractGroupProvider
extends Object
implements GroupProvider

Shared base class for Openfire GroupProvider implementations. By default all mutator methods throw UnsupportedOperationException. In addition, group search operations are disabled. Subclasses may optionally implement these capabilities, and must also at minimum implement the GroupProvider.getGroup(String) method.

Author:
Tom Evans

Constructor Summary
AbstractGroupProvider()
           
 
Method Summary
 void addMember(String groupName, org.xmpp.packet.JID user, boolean administrator)
          Adds an entity to a group (optional operation).
 Group createGroup(String name)
          Creates a group with the given name (optional operation).
 void deleteGroup(String name)
          Deletes the group (optional operation).
 void deleteMember(String groupName, org.xmpp.packet.JID user)
          Deletes an entity from a group (optional operation).
 Collection<String> getPublicSharedGroupNames()
          Returns an unmodifiable Collection of all public shared groups in the system.
 Collection<String> getSharedGroupNames()
          Returns the name of the groups that are shared groups.
 Collection<String> getSharedGroupNames(org.xmpp.packet.JID user)
          Returns an unmodifiable Collection of all shared groups in the system for a given user.
 Collection<String> getVisibleGroupNames(String userGroup)
          Returns an unmodifiable Collection of groups that are visible to the members of the given group.
 boolean isReadOnly()
          Always true for a read-only provider
 boolean isSearchSupported()
          Returns true if the provider supports group search capability.
 boolean isSharingSupported()
          Returns true if this GroupProvider allows group sharing.
 PersistableMap<String,String> loadProperties(Group group)
          Returns a custom Map that updates the database whenever a property value is added, changed, or deleted.
 Collection<String> search(String query)
          Returns a collection of group search results.
 Collection<String> search(String query, int startIndex, int numResults)
          Returns a collection of group search results.
 Collection<String> search(String key, String value)
          Returns the names of groups that have a property matching the given key/value pair.
 void setDescription(String name, String description)
          Updates the group's description.
 void setName(String oldName, String newName)
          Sets the name of a group to a new name.
 void updateMember(String groupName, org.xmpp.packet.JID user, boolean administrator)
          Updates the privileges of an entity in a group.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jivesoftware.openfire.group.GroupProvider
getGroup, getGroupCount, getGroupNames, getGroupNames, getGroupNames
 

Constructor Detail

AbstractGroupProvider

public AbstractGroupProvider()
Method Detail

addMember

public void addMember(String groupName,
                      org.xmpp.packet.JID user,
                      boolean administrator)
Description copied from interface: GroupProvider
Adds an entity to a group (optional operation).

Specified by:
addMember in interface GroupProvider
Parameters:
groupName - the group to add the member to
user - the JID of the entity to add
administrator - True if the member is an administrator of the group
Throws:
UnsupportedOperationException

updateMember

public void updateMember(String groupName,
                         org.xmpp.packet.JID user,
                         boolean administrator)
Description copied from interface: GroupProvider
Updates the privileges of an entity in a group.

Specified by:
updateMember in interface GroupProvider
Parameters:
groupName - the group where the change happened
user - the JID of the entity with new privileges
administrator - True if the member is an administrator of the group
Throws:
UnsupportedOperationException

deleteMember

public void deleteMember(String groupName,
                         org.xmpp.packet.JID user)
Description copied from interface: GroupProvider
Deletes an entity from a group (optional operation).

Specified by:
deleteMember in interface GroupProvider
Parameters:
groupName - the group name.
user - the JID of the entity to delete.
Throws:
UnsupportedOperationException

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.

createGroup

public Group createGroup(String name)
Description copied from interface: GroupProvider
Creates a group with the given name (optional operation).

The provider is responsible for setting the creation date and modification date to the current date/time.

Specified by:
createGroup in interface GroupProvider
Parameters:
name - name of the group.
Returns:
the newly created group.
Throws:
UnsupportedOperationException

deleteGroup

public void deleteGroup(String name)
Description copied from interface: GroupProvider
Deletes the group (optional operation).

Specified by:
deleteGroup in interface GroupProvider
Parameters:
name - the name of the group to delete.
Throws:
UnsupportedOperationException

setName

public void setName(String oldName,
                    String newName)
             throws GroupAlreadyExistsException
Description copied from interface: GroupProvider
Sets the name of a group to a new name.

Specified by:
setName in interface GroupProvider
Parameters:
oldName - the current name of the group.
newName - the desired new name of the group.
Throws:
UnsupportedOperationException
GroupAlreadyExistsException - if a group with the same name already exists.

setDescription

public void setDescription(String name,
                           String description)
                    throws GroupNotFoundException
Description copied from interface: GroupProvider
Updates the group's description.

Specified by:
setDescription in interface GroupProvider
Parameters:
name - the group name.
description - the group description.
Throws:
UnsupportedOperationException
GroupNotFoundException - if no existing group could be found to update.

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.

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.

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 an 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

Openfire 3.9.3 Javadoc

Copyright © 2003-2008 Jive Software.