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.
author: Dan Ellentuck version: $Revision: 34758 $ |