uPortal 2.4.1
API Documentation

org.jasig.portal.groups
Interface IGroupMember

All Superinterfaces:
IBasicEntity
All Known Subinterfaces:
IEntity, IEntityGroup, ILockableEntityGroup
All Known Implementing Classes:
EntityGroupImpl, EntityImpl, GroupMemberImpl, LockableEntityGroupImpl, SearchResultsGroupImpl

public interface IGroupMember
extends IBasicEntity

An IGroupMember defines common behavior for both the leaf IEntity and composite IEntityGroup sub-types that together make up a Groups structure.

An IGroupMember can answer both its parents and its children but has no api for adding or removing them. These methods are defined on the composite type, IEntityGroup, since you add a member to a group, and not vice versa.

Because it extends IBasicEntity, an IGroupMember has an EntityIdentifier that can be used to cache and lock it. A leaf IGroupMember also has a separate EntityIdentifier for its underlying entity. This second EntityIdentifier is used to create and record group memberships. In the case of a composite (non-leaf) IGroupMember, both EntityIdentifiers are the same.

Take care to implement equals() and hashCode() so that duplicates returned from "deep" methods can be recognized.

Version:
$Revision: 1.9 $
Author:
Dan Ellentuck

Method Summary
 boolean contains(IGroupMember gm)
          Answers if IGroupMember gm is a member of this.
 boolean deepContains(IGroupMember gm)
          Answers if IGroupMember gm is a recursive member of this.
 boolean equals(java.lang.Object o)
          Answers if Object o is an IGroupMember that refers to the same underlying entity(ies) as this.
 java.util.Iterator getAllContainingGroups()
          Returns an Iterator over the Set of this IGroupMember's recursively-retrieved parent groups.
 java.util.Iterator getAllEntities()
          Returns an Iterator over the Set of this IGroupMember's recursively-retrieved members that are IEntities.
 java.util.Iterator getAllMembers()
          Returns an Iterator over the Set of recursively-retrieved IGroupMembers that are members of this.
 java.util.Iterator getContainingGroups()
          Returns an Iterator over this IGroupMember's parent groups.
 java.util.Iterator getEntities()
          Returns an Iterator over this IGroupMember's members that are IEntities.
 java.lang.Class getEntityType()
          Returns the underlying entity type.
 java.lang.String getKey()
          Returns the key of the underlying entity.
 java.lang.Class getLeafType()
           
 IEntityGroup getMemberGroupNamed(java.lang.String name)
          Returns the named IEntityGroup from our members Collection.
 java.util.Iterator getMembers()
          Returns an Iterator over the IGroupMembers in our member Collection.
 java.lang.Class getType()
          Returns the type of the underlying entity.
 EntityIdentifier getUnderlyingEntityIdentifier()
          Returns EntityIdentifier for this IGroupMember's underlying entity.
 int hashCode()
           
 boolean hasMembers()
          Answers if this IGroupMember has any members.
 boolean isDeepMemberOf(IGroupMember gm)
          Answers if this is a recursive member of IGroupMember gm.
 boolean isEntity()
           
 boolean isGroup()
           
 boolean isMemberOf(IGroupMember gm)
          Answers if this is a member of IGroupMember gm.
 
Methods inherited from interface org.jasig.portal.IBasicEntity
getEntityIdentifier
 

Method Detail

contains

public boolean contains(IGroupMember gm)
                 throws GroupsException
Answers if IGroupMember gm is a member of this.

Parameters:
gm - org.jasig.portal.groups.IGroupMember
Returns:
boolean
Throws:
GroupsException

deepContains

public boolean deepContains(IGroupMember gm)
                     throws GroupsException
Answers if IGroupMember gm is a recursive member of this.

Parameters:
gm - org.jasig.portal.groups.IGroupMember
Returns:
boolean
Throws:
GroupsException

equals

public boolean equals(java.lang.Object o)
Answers if Object o is an IGroupMember that refers to the same underlying entity(ies) as this.

Parameters:
o -
Returns:
boolean

getAllContainingGroups

public java.util.Iterator getAllContainingGroups()
                                          throws GroupsException
Returns an Iterator over the Set of this IGroupMember's recursively-retrieved parent groups.

Returns:
java.util.Iterator
Throws:
GroupsException

getAllEntities

public java.util.Iterator getAllEntities()
                                  throws GroupsException
Returns an Iterator over the Set of this IGroupMember's recursively-retrieved members that are IEntities.

Returns:
java.util.Iterator
Throws:
GroupsException

getAllMembers

public java.util.Iterator getAllMembers()
                                 throws GroupsException
Returns an Iterator over the Set of recursively-retrieved IGroupMembers that are members of this.

Returns:
java.util.Iterator
Throws:
GroupsException

getContainingGroups

public java.util.Iterator getContainingGroups()
                                       throws GroupsException
Returns an Iterator over this IGroupMember's parent groups.

Returns:
java.util.Iterator
Throws:
GroupsException

getEntities

public java.util.Iterator getEntities()
                               throws GroupsException
Returns an Iterator over this IGroupMember's members that are IEntities.

Returns:
java.util.Iterator
Throws:
GroupsException

getEntityType

public java.lang.Class getEntityType()
Returns the underlying entity type. For an IEntityGroup, this is analagous to Class as applied to an Array; it is an attribute of the group object. For an IEntity, it is the entity type of the group the entity belongs to, which may be any Class the underlying entity can be legally cast to. Thus, an IEntity with an underlying entity of type Manager could have an entity type of Employee as long as Employee was a superclass of Manager.

Returns:
java.lang.Class

getKey

public java.lang.String getKey()
Returns the key of the underlying entity.

Returns:
String

getLeafType

public java.lang.Class getLeafType()
See Also:
getEntityType()

getMemberGroupNamed

public IEntityGroup getMemberGroupNamed(java.lang.String name)
                                 throws GroupsException
Returns the named IEntityGroup from our members Collection.

Parameters:
name - java.lang.String
Returns:
org.jasig.portal.groups.IEntityGroup
Throws:
GroupsException

getMembers

public java.util.Iterator getMembers()
                              throws GroupsException
Returns an Iterator over the IGroupMembers in our member Collection.

Returns:
java.util.Iterator
Throws:
GroupsException

getType

public java.lang.Class getType()
Returns the type of the underlying entity. For a group this will be IEntityGroup. For an entity, it will be the type of the underlying EntityIdentifier.

Returns:
java.lang.Class

getUnderlyingEntityIdentifier

public EntityIdentifier getUnderlyingEntityIdentifier()
Returns EntityIdentifier for this IGroupMember's underlying entity. In the case of an IEntityGroup, it will be the EntityIdentifier for this. In the case of an IEntity, it will be the EntityIdentifier that identifies the underlying IPerson, ChannelDefinition, etc.

Returns:
org.jasig.portal.EntityIdentifier

hashCode

public int hashCode()
Returns:
int

hasMembers

public boolean hasMembers()
                   throws GroupsException
Answers if this IGroupMember has any members.

Returns:
boolean
Throws:
GroupsException

isDeepMemberOf

public boolean isDeepMemberOf(IGroupMember gm)
                       throws GroupsException
Answers if this is a recursive member of IGroupMember gm.

Parameters:
gm - org.jasig.portal.groups.IGroupMember
Returns:
boolean
Throws:
GroupsException

isEntity

public boolean isEntity()
Returns:
boolean

isGroup

public boolean isGroup()
Returns:
boolean

isMemberOf

public boolean isMemberOf(IGroupMember gm)
                   throws GroupsException
Answers if this is a member of IGroupMember gm.

Parameters:
gm - org.jasig.portal.groups.IGroupMember
Returns:
boolean
Throws:
GroupsException

uPortal 2.4.1
API Documentation