Overview | Package | Class | Tree | Deprecated | Index | Help
| Openfire 3.4.4 Javadoc
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jivesoftware.openfire.group
Interface GroupProvider

All Known Implementing Classes:
  DefaultGroupProvider, JDBCGroupProvider, LdapGroupProvider

    public interface GroupProvider

Provider interface for groups. Users that wish to integrate with their own group system must implement this class and then register the implementation with Openfire in the `openfire.xml` file. An entry in that file would look like the following:

       <provider>
         <group>
           <className>com.foo.auth.CustomGroupProvider</className>
         </group>
       </provider>

Author:
  Matt Tucker

Method Summary
`void` | `addMember(String groupName, 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, JID user)` Deletes an entity from a group (optional operation).
`Group` | `getGroup(String name)` Returns a group based on it's 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(JID user)` Returns the Collection of group names that an entity belongs to.
`boolean` | `isReadOnly()` Returns true if this GroupProvider is read-only.
`boolean` | `isSearchSupported()` Returns true if group searching is supported by the provider.
`Collection<String>` | `search(String query)` Returns the group names that match a search.
`Collection<String>` | `search(String query, int startIndex, int numResults)` Returns the group names that match a search given a start index and desired number of 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, JID user, boolean administrator)` Updates the privileges of an entity in a group.

Method Detail

### createGroup

    Group createGroup(String name)
                      throws UnsupportedOperationException,
                             GroupAlreadyExistsException

  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.

  Parameters:
    `name` - name of the group.
  Returns:
    the newly created group.
  Throws:
    `GroupAlreadyExistsException` - if a group with the same name already exists.
    `UnsupportedOperationException` - if the provider does not support the operation.

### deleteGroup

    void deleteGroup(String name)
                     throws UnsupportedOperationException

  Deletes the group (optional operation).

  Parameters:
    `name` - the name of the group to delete.
  Throws:
    `UnsupportedOperationException` - if the provider does not support the operation.

### getGroup

    Group getGroup(String name)
                   throws GroupNotFoundException

  Returns a group based on it's 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

### setName

    void setName(String oldName,
                 String newName)
                 throws UnsupportedOperationException,
                        GroupAlreadyExistsException

  Sets the name of a group to a new name.

  Parameters:
    `oldName` - the current name of the group.
    `newName` - the desired new name of the group.
  Throws:
    `GroupAlreadyExistsException` - if a group with the same name already exists.
    `UnsupportedOperationException` - if the provider does not support the operation.

### setDescription

    void setDescription(String name,
                        String description)
                        throws GroupNotFoundException

  Updates the group's description.

  Parameters:
    `name` - the group name.
    `description` - the group description.
  Throws:
    `GroupNotFoundException` - if no existing group could be found to update.

### getGroupCount

    int getGroupCount()

  Returns the number of groups in the system.

  Returns:
    the number of groups in the system.

### getGroupNames

    Collection<String> getGroupNames()

  Returns the Collection of all group names in the system.

  Returns:
    the Collection of all groups.

### getGroupNames

    Collection<String> getGroupNames(int startIndex,
                                     int numResults)

  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` and `numResults`.

### getGroupNames

    Collection<String> getGroupNames(JID user)

  Returns the Collection of group names that an entity belongs to.

  Parameters:
    `user` - the JID of the entity.
  Returns:
    the Collection of group names that the user belongs to.

### addMember

    void addMember(String groupName,
                   JID user,
                   boolean administrator)
                   throws UnsupportedOperationException

  Adds an entity to a group (optional operation).

  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` - if the provider does not support the operation.

### updateMember

    void updateMember(String groupName,
                      JID user,
                      boolean administrator)
                      throws UnsupportedOperationException

  Updates the privileges of an entity in a group.

  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` - if the provider does not support the operation.

### deleteMember

    void deleteMember(String groupName,
                      JID user)
                      throws UnsupportedOperationException

  Deletes an entity from a group (optional operation).

  Parameters:
    `groupName` - the group name.
    `user` - the JID of the entity to delete.
  Throws:
    `UnsupportedOperationException` - if the provider does not support the operation.

### isReadOnly

    boolean isReadOnly()

  Returns true if this GroupProvider is read-only. When read-only, groups can not be created, deleted, or modified.

  Returns:
    true if the user provider is read-only.

### search

    Collection<String> search(String query)

  Returns the group names that match a search. The search is over group names and implicitly uses wildcard matching (although the exact search semantics are left up to each provider implementation). For example, a search for "HR" should match the groups "HR", "HR Department", and "The HR People".

  Before searching or showing a search UI, use the `isSearchSupported()` method to ensure that searching is supported.

  Parameters:
    `query` - the search string for group names.
  Returns:
    all groups that match the search.

### search

    Collection<String> search(String query,
                              int startIndex,
                              int numResults)

  Returns the group names that match a search given a start index and desired number of results. The search is over group names and implicitly uses wildcard matching (although the exact search semantics are left up to each provider implementation). For example, a search for "HR" should match the groups "HR", "HR Department", and "The HR People".

  Before searching or showing a search UI, use the `isSearchSupported()` method to ensure that searching is supported.

  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

    boolean isSearchSupported()

  Returns true if group searching is supported by the provider.

  Returns:
    true if searching is supported.

Overview | Package | Class | Tree | Deprecated | Index | Help
| Openfire 3.4.4 Javadoc
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2007 Jive Software.