Package org.jivesoftware.openfire.group
Class DefaultGroupProvider
- java.lang.Object
-
- org.jivesoftware.openfire.group.AbstractGroupProvider
-
- org.jivesoftware.openfire.group.DefaultGroupProvider
-
- All Implemented Interfaces:
GroupProvider
public class DefaultGroupProvider extends AbstractGroupProvider
Database implementation of the GroupManager interface.- Author:
- Matt Tucker
-
-
Field Summary
-
Fields inherited from class org.jivesoftware.openfire.group.AbstractGroupProvider
SHARED_GROUP_RECURSIVE, sharedGroupMetaCache
-
-
Constructor Summary
Constructors Constructor Description DefaultGroupProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 groupName)
Deletes the group (optional operation).void
deleteMember(String groupName, org.xmpp.packet.JID user)
Deletes an entity from a group (optional operation).Group
getGroup(String name)
Returns a group based on its name.int
getGroupCount()
Returns the number of groups in the system.Collection<String>
getGroupNames()
Returns the Collection of all group names in the system.Collection<String>
getGroupNames(int startIndex, int numResults)
Returns the Collection of all groups in the system.Collection<String>
getGroupNames(org.xmpp.packet.JID user)
Returns the Collection of group names that an entity belongs to.boolean
isReadOnly()
Always true for a read-only providerboolean
isSearchSupported()
Returns true if the provider supports group search capability.boolean
isSharingSupported()
Returns true if this GroupProvider allows group sharing.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.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 org.jivesoftware.openfire.group.AbstractGroupProvider
getPublicSharedGroupNames, getSharedGroupNames, getSharedGroupNames, getVisibleGroupNames, hasSharedGroups, loadProperties, search
-
-
-
-
Method Detail
-
createGroup
public Group createGroup(String name) throws GroupNameInvalidException, GroupAlreadyExistsException
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 interfaceGroupProvider
- Overrides:
createGroup
in classAbstractGroupProvider
- Parameters:
name
- name of the group.- Returns:
- the newly created group.
- Throws:
GroupAlreadyExistsException
- if a group with the same name already exists.GroupNameInvalidException
-
getGroup
public Group getGroup(String name) throws GroupNotFoundException
Description copied from interface:GroupProvider
Returns a group based on its name.- Parameters:
name
- the name of the group.- Returns:
- the group with the given name.
- Throws:
GroupNotFoundException
- If no group with that ID could be found
-
setDescription
public void setDescription(String name, String description) throws GroupNotFoundException
Description copied from interface:GroupProvider
Updates the group's description.- Specified by:
setDescription
in interfaceGroupProvider
- Overrides:
setDescription
in classAbstractGroupProvider
- Parameters:
name
- the group name.description
- the group description.- Throws:
GroupNotFoundException
- if the group could not be found
-
setName
public void setName(String oldName, String newName) throws GroupAlreadyExistsException, GroupNameInvalidException, GroupNotFoundException
Description copied from interface:GroupProvider
Sets the name of a group to a new name.- Specified by:
setName
in interfaceGroupProvider
- Overrides:
setName
in classAbstractGroupProvider
- Parameters:
oldName
- the current name of the group.newName
- the desired new name of the group.- Throws:
GroupAlreadyExistsException
- if the group already existsGroupNameInvalidException
GroupNotFoundException
-
deleteGroup
public void deleteGroup(String groupName) throws GroupNotFoundException
Description copied from interface:GroupProvider
Deletes the group (optional operation).- Specified by:
deleteGroup
in interfaceGroupProvider
- Overrides:
deleteGroup
in classAbstractGroupProvider
- Parameters:
groupName
- the name of the group to delete.- Throws:
GroupNotFoundException
-
getGroupCount
public int getGroupCount()
Description copied from interface:GroupProvider
Returns the number of groups in the system.- Returns:
- the number of groups in the system.
-
getGroupNames
public Collection<String> getGroupNames()
Description copied from interface:GroupProvider
Returns the Collection of all group names in the system.- Returns:
- the Collection of all groups.
-
getGroupNames
public Collection<String> getGroupNames(int startIndex, int numResults)
Description copied from interface:GroupProvider
Returns the Collection of all groups in the system.- Parameters:
startIndex
- start index in results.numResults
- number of results to return.- Returns:
- the Collection of all group names given the
startIndex
andnumResults
.
-
getGroupNames
public Collection<String> getGroupNames(org.xmpp.packet.JID user)
Description copied from interface:GroupProvider
Returns the Collection of group names that an entity belongs to. Implementations should use the bare JID representation of the JID passed as an argument to this method.- Parameters:
user
- the (bare) JID of the entity.- Returns:
- the Collection of group names that the user belongs to.
-
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 interfaceGroupProvider
- Overrides:
addMember
in classAbstractGroupProvider
- Parameters:
groupName
- the group to add the member touser
- the (bare) JID of the entity to addadministrator
- True if the member is an administrator of the group- Throws:
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 interfaceGroupProvider
- Overrides:
updateMember
in classAbstractGroupProvider
- Parameters:
groupName
- the group where the change happeneduser
- the (bare) JID of the entity with new privilegesadministrator
- True if the member is an administrator of the group- Throws:
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 interfaceGroupProvider
- Overrides:
deleteMember
in classAbstractGroupProvider
- Parameters:
groupName
- the group name.user
- the (bare) JID of the entity to delete.
-
isReadOnly
public boolean isReadOnly()
Description copied from class:AbstractGroupProvider
Always true for a read-only provider- Specified by:
isReadOnly
in interfaceGroupProvider
- Overrides:
isReadOnly
in classAbstractGroupProvider
- Returns:
- true if the user provider is read-only.
-
search
public Collection<String> search(String query)
Description copied from class:AbstractGroupProvider
Returns a collection of group search results. This implementation returns an empty collection.- Specified by:
search
in interfaceGroupProvider
- Overrides:
search
in classAbstractGroupProvider
- 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)
Description copied from class:AbstractGroupProvider
Returns a collection of group search results. This implementation returns an empty collection.- Specified by:
search
in interfaceGroupProvider
- Overrides:
search
in classAbstractGroupProvider
- 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.
-
isSearchSupported
public boolean isSearchSupported()
Description copied from class:AbstractGroupProvider
Returns true if the provider supports group search capability. This implementation always returns false.- Specified by:
isSearchSupported
in interfaceGroupProvider
- Overrides:
isSearchSupported
in classAbstractGroupProvider
- Returns:
- true if searching is supported.
-
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 interfaceGroupProvider
- Overrides:
isSharingSupported
in classAbstractGroupProvider
- Returns:
- true if the group provider supports group sharing.
-
-