Package org.jivesoftware.openfire.ldap
Class LdapGroupProvider
- java.lang.Object
-
- org.jivesoftware.openfire.group.AbstractGroupProvider
-
- org.jivesoftware.openfire.ldap.LdapGroupProvider
-
- All Implemented Interfaces:
GroupProvider
public class LdapGroupProvider extends AbstractGroupProvider
LDAP implementation of the GroupProvider interface. All data in the directory is treated as read-only so any set operations will result in an exception.- Author:
- Matt Tucker, Greg Ferguson and Cameron Moore
-
-
Field Summary
Fields Modifier and Type Field Description static SystemProperty<Boolean>
PROCESSBIGGROUPS
-
Fields inherited from class org.jivesoftware.openfire.group.AbstractGroupProvider
SHARED_GROUP_RECURSIVE, sharedGroupMetaCache
-
-
Constructor Summary
Constructors Constructor Description LdapGroupProvider()
Constructs a new LDAP group provider.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
genNextRangePart(int lasthigh)
Group
getGroup(String groupName)
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
isSearchSupported()
Returns true if the provider supports group search capability.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.-
Methods inherited from class org.jivesoftware.openfire.group.AbstractGroupProvider
addMember, createGroup, deleteGroup, deleteMember, getPublicSharedGroupNames, getSharedGroupNames, getSharedGroupNames, getVisibleGroupNames, hasSharedGroups, isReadOnly, isSharingSupported, loadProperties, setDescription, setName, updateMember
-
-
-
-
Field Detail
-
PROCESSBIGGROUPS
public static SystemProperty<Boolean> PROCESSBIGGROUPS
-
-
Method Detail
-
getGroup
public Group getGroup(String groupName) throws GroupNotFoundException
Description copied from interface:GroupProvider
Returns a group based on its name.- Parameters:
groupName
- the name of the group.- Returns:
- the group with the given name.
- Throws:
GroupNotFoundException
- If no group with that ID could be found
-
genNextRangePart
public String genNextRangePart(int lasthigh)
-
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.
-
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 theGroupProvider.isSearchSupported()
method to ensure that searching is supported.- Specified by:
search
in interfaceGroupProvider
- Overrides:
search
in classAbstractGroupProvider
- 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.
-
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.
-
-