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

## org.jasig.portal.groups.pags
Class PersonAttributesGroupStore

    java.lang.Object
      org.jasig.portal.groups.pags.PersonAttributesGroupStore

All Implemented Interfaces:
  IEntityGroupStore, IEntitySearcher, IEntityStore, IGroupConstants

    public class PersonAttributesGroupStore

extends java.lang.Object
implements IEntityGroupStore, IEntityStore, IEntitySearcher

The Person Attributes Group Store uses attributes stored in the IPerson object to determine group membership. It can use attributes from any data source supported by the PersonDirectory service.

Version:
  $Revision: 1.17.2.1 $
Author:
  Al Wold

Nested Class Summary
`static class` | `PersonAttributesGroupStore.GroupDefinition`
`static class` | `PersonAttributesGroupStore.TestGroup`

Field Summary
`private java.util.Map` | `containingGroups`
`private java.util.Map` | `groupDefinitions`
`private java.util.Map` | `groups`
`private static org.apache.commons.logging.Log` | `log`
`private java.util.Properties` | `props`

Fields inherited from interface org.jasig.portal.groups.IGroupConstants
`CHANNEL_CATEGORIES, CONTAINS, ENDS_WITH, EVERYONE, IS, NODE_SEPARATOR, PORTAL_ADMINISTRATORS, STARTS_WITH`

Constructor Summary
`PersonAttributesGroupStore()`

Method Summary
`private void` | `cacheContainingGroupsForGroups()`
`private IEntityGroup` | `cacheGet(java.lang.String key)`
`private void` | `cachePut(IEntityGroup group)`
`boolean` | `contains(IEntityGroup group, IGroupMember member)` Answers if `group` contains `member`.
`void` | `delete(IEntityGroup group)` Delete this `IEntityGroup` from the data store.
`IEntityGroup` | `find(java.lang.String key)` Returns an instance of the `IEntityGroup` from the data store.
`java.util.Iterator` | `findContainingGroups(IGroupMember member)` Returns an `Iterator` over the `Collection` of `IEntityGroups` that the `IGroupMember` belongs to.
`private java.util.Iterator` | `findContainingGroupsForEntity(IEntity member)`
`private java.util.Iterator` | `findContainingGroupsForGroup(IEntityGroup group)`
`java.util.Iterator` | `findEntitiesForGroup(IEntityGroup group)` Returns an `Iterator` over the `Collection` of `IEntities` that are members of this `IEntityGroup`.
`ILockableEntityGroup` | `findLockable(java.lang.String key)` Returns an instance of the `ILockableEntityGroup` from the data store.
`java.lang.String[]` | `findMemberGroupKeys(IEntityGroup group)` Returns a `String[]` containing the keys of `IEntityGroups` that are members of this `IEntityGroup`.
`java.util.Iterator` | `findMemberGroups(IEntityGroup group)` Returns an `Iterator` over the `Collection` of `IEntityGroups` that are members of this `IEntityGroup`.
`private IPersonAttributesConfiguration` | `getConfig(java.lang.String className)`
`private void` | `initGroups()` Iterates over the groupDefinitions Collection and creates the corresponding groups.
`private IPersonTester` | `initializeTester(java.lang.String tester, java.lang.String attribute, java.lang.String value)`
`IEntityGroup` | `newInstance(java.lang.Class entityType)`
`IEntity` | `newInstance(java.lang.String key)`
`IEntity` | `newInstance(java.lang.String key, java.lang.Class type)`
`private java.util.Set` | `primGetAllContainingGroups(IEntityGroup group, java.util.Set s)`
`EntityIdentifier[]` | `searchForEntities(java.lang.String query, int method, java.lang.Class type)` Find EntityIdentifiers for entities whose name matches the query string according to the specified method and is of the specified type
`EntityIdentifier[]` | `searchForGroups(java.lang.String query, int method, java.lang.Class leaftype)` Find EntityIdentifiers for groups whose name matches the query string according to the specified method and matches the provided leaf type
`private boolean` | `testRecursively(PersonAttributesGroupStore.GroupDefinition groupDef, IPerson person)`
`void` | `update(IEntityGroup group)` Adds or updates the `IEntityGroup` AND ITS MEMBERSHIPS to the data store, as appropriate.
`void` | `updateMembers(IEntityGroup group)` Commits the group memberships of the `IEntityGroup` to the data store.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### log

    private static final org.apache.commons.logging.Log log

### props

    private java.util.Properties props

### groupDefinitions

    private java.util.Map groupDefinitions

### groups

    private java.util.Map groups

### containingGroups

    private java.util.Map containingGroups

Constructor Detail

### PersonAttributesGroupStore

    public PersonAttributesGroupStore()

Method Detail

### getConfig

    private IPersonAttributesConfiguration getConfig(java.lang.String className)
                                              throws java.lang.ClassNotFoundException,
                                                     java.lang.InstantiationException,
                                                     java.lang.IllegalAccessException

  Throws:
    `java.lang.ClassNotFoundException`
    `java.lang.InstantiationException`
    `java.lang.IllegalAccessException`

### initGroups

    private void initGroups()
                     throws GroupsException

  Iterates over the groupDefinitions Collection and creates the corresponding groups. Then, caches parents for each child group.

  Throws:
    `GroupsException`

### initializeTester

    private IPersonTester initializeTester(java.lang.String tester,
                                           java.lang.String attribute,
                                           java.lang.String value)

### cacheGet

    private IEntityGroup cacheGet(java.lang.String key)

### cachePut

    private void cachePut(IEntityGroup group)

### contains

    public boolean contains(IEntityGroup group,
                            IGroupMember member)
                     throws GroupsException

  Description copied from interface: `IEntityGroupStore`
  Answers if `group` contains `member`.

  Specified by:
    `contains` in interface `IEntityGroupStore`
  Parameters:
    `group` - org.jasig.portal.groups.IEntityGroup
    `member` - org.jasig.portal.groups.IGroupMember
  Returns:
    boolean
  Throws:
    `GroupsException`

### delete

    public void delete(IEntityGroup group)
                throws GroupsException

  Description copied from interface: `IEntityGroupStore`
  Delete this `IEntityGroup` from the data store.

  Specified by:
    `delete` in interface `IEntityGroupStore`
  Parameters:
    `group` - org.jasig.portal.groups.IEntityGroup
  Throws:
    `GroupsException`

### find

    public IEntityGroup find(java.lang.String key)
                      throws GroupsException

  Description copied from interface: `IEntityGroupStore`
  Returns an instance of the `IEntityGroup` from the data store.

  Specified by:
    `find` in interface `IEntityGroupStore`
  Parameters:
    `key` - java.lang.String
  Returns:
    org.jasig.portal.groups.IEntityGroup
  Throws:
    `GroupsException`

### cacheContainingGroupsForGroups

    private void cacheContainingGroupsForGroups()
                                         throws GroupsException

  Throws:
    `GroupsException`

### testRecursively

    private boolean testRecursively(PersonAttributesGroupStore.GroupDefinition groupDef,
                                    IPerson person)
                             throws GroupsException

  Throws:
    `GroupsException`

### primGetAllContainingGroups

    private java.util.Set primGetAllContainingGroups(IEntityGroup group,
                                                     java.util.Set s)
                                              throws GroupsException

  Throws:
    `GroupsException`

### findContainingGroups

    public java.util.Iterator findContainingGroups(IGroupMember member)
                                            throws GroupsException

  Description copied from interface: `IEntityGroupStore`
  Returns an `Iterator` over the `Collection` of `IEntityGroups` that the `IGroupMember` belongs to.

  Specified by:
    `findContainingGroups` in interface `IEntityGroupStore`
  Parameters:
    `member` - org.jasig.portal.groups.IEntityGroup
  Returns:
    java.util.Iterator
  Throws:
    `GroupsException`

### findContainingGroupsForGroup

    private java.util.Iterator findContainingGroupsForGroup(IEntityGroup group)

### findContainingGroupsForEntity

    private java.util.Iterator findContainingGroupsForEntity(IEntity member)
                                                      throws GroupsException

  Throws:
    `GroupsException`

### findEntitiesForGroup

    public java.util.Iterator findEntitiesForGroup(IEntityGroup group)
                                            throws GroupsException

  Description copied from interface: `IEntityGroupStore`
  Returns an `Iterator` over the `Collection` of `IEntities` that are members of this `IEntityGroup`.

  Specified by:
    `findEntitiesForGroup` in interface `IEntityGroupStore`
  Parameters:
    `group` - org.jasig.portal.groups.IEntityGroup
  Returns:
    java.util.Iterator
  Throws:
    `GroupsException`

### findLockable

    public ILockableEntityGroup findLockable(java.lang.String key)
                                      throws GroupsException

  Description copied from interface: `IEntityGroupStore`
  Returns an instance of the `ILockableEntityGroup` from the data store.

  Specified by:
    `findLockable` in interface `IEntityGroupStore`
  Parameters:
    `key` - java.lang.String
  Returns:
    org.jasig.portal.groups.IEntityGroup
  Throws:
    `GroupsException`

### findMemberGroupKeys

    public java.lang.String[] findMemberGroupKeys(IEntityGroup group)
                                           throws GroupsException

  Description copied from interface: `IEntityGroupStore`
  Returns a `String[]` containing the keys of `IEntityGroups` that are members of this `IEntityGroup`. In a composite group system, a group may contain a member group from a different service. This is called a foreign membership, and is only possible in an internally-managed service. A group store in such a service can return the key of a foreign member group, but not the group itself, which can only be returned by its local store.

  Specified by:
    `findMemberGroupKeys` in interface `IEntityGroupStore`
  Parameters:
    `group` - org.jasig.portal.groups.IEntityGroup
  Returns:
    String[]
  Throws:
    `GroupsException`

### findMemberGroups

    public java.util.Iterator findMemberGroups(IEntityGroup group)
                                        throws GroupsException

  Description copied from interface: `IEntityGroupStore`
  Returns an `Iterator` over the `Collection` of `IEntityGroups` that are members of this `IEntityGroup`.

  Specified by:
    `findMemberGroups` in interface `IEntityGroupStore`
  Parameters:
    `group` - org.jasig.portal.groups.IEntityGroup
  Returns:
    java.util.Iterator
  Throws:
    `GroupsException`

### newInstance

    public IEntityGroup newInstance(java.lang.Class entityType)
                             throws GroupsException

  Specified by:
    `newInstance` in interface `IEntityGroupStore`
  Returns:
    org.jasig.portal.groups.IEntityGroup
  Throws:
    `GroupsException`

### searchForGroups

    public EntityIdentifier[] searchForGroups(java.lang.String query,
                                              int method,
                                              java.lang.Class leaftype)
                                       throws GroupsException

  Description copied from interface: `IEntityGroupStore`
  Find EntityIdentifiers for groups whose name matches the query string according to the specified method and matches the provided leaf type

  Specified by:
    `searchForGroups` in interface `IEntityGroupStore`
  Throws:
    `GroupsException`

### update

    public void update(IEntityGroup group)
                throws GroupsException

  Description copied from interface: `IEntityGroupStore`
  Adds or updates the `IEntityGroup` AND ITS MEMBERSHIPS to the data store, as appropriate.

  Specified by:
    `update` in interface `IEntityGroupStore`
  Parameters:
    `group` - org.jasig.portal.groups.IEntityGroup
  Throws:
    `GroupsException`

### updateMembers

    public void updateMembers(IEntityGroup group)
                       throws GroupsException

  Description copied from interface: `IEntityGroupStore`
  Commits the group memberships of the `IEntityGroup` to the data store.

  Specified by:
    `updateMembers` in interface `IEntityGroupStore`
  Parameters:
    `group` - org.jasig.portal.groups.IEntityGroup
  Throws:
    `GroupsException`

### newInstance

    public IEntity newInstance(java.lang.String key,
                               java.lang.Class type)
                        throws GroupsException

  Specified by:
    `newInstance` in interface `IEntityStore`
  Parameters:
    `key` - java.lang.String - the entity's key
    `type` - java.lang.Class - the entity's Type
  Returns:
    org.jasig.portal.groups.IEntity
  Throws:
    `GroupsException`

### newInstance

    public IEntity newInstance(java.lang.String key)
                        throws GroupsException

  Specified by:
    `newInstance` in interface `IEntityStore`
  Parameters:
    `key` - java.lang.String
  Returns:
    org.jasig.portal.groups.IEntity
  Throws:
    `GroupsException`

### searchForEntities

    public EntityIdentifier[] searchForEntities(java.lang.String query,
                                                int method,
                                                java.lang.Class type)
                                         throws GroupsException

  Description copied from interface: `IEntitySearcher`
  Find EntityIdentifiers for entities whose name matches the query string according to the specified method and is of the specified type

  Specified by:
    `searchForEntities` in interface `IEntitySearcher`
  Throws:
    `GroupsException`

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