org.jasig.portal.groups
Class LockableEntityGroupImpl

java.lang.Object
  extended by org.jasig.portal.groups.GroupMemberImpl
      extended by org.jasig.portal.groups.EntityGroupImpl
          extended by org.jasig.portal.groups.LockableEntityGroupImpl
All Implemented Interfaces:
IEntityGroup, IGroupMember, ILockableEntityGroup, IBasicEntity

public class LockableEntityGroupImpl
extends EntityGroupImpl
implements ILockableEntityGroup

Extends EntityGroupImpl to make it lockable for writing.

Version:
$Revision: 1.7 $
Author:
Dan Ellentuck

Field Summary
protected  IEntityLock lock
           
 
Fields inherited from class org.jasig.portal.groups.EntityGroupImpl
localGroupService
 
Constructor Summary
LockableEntityGroupImpl(java.lang.String groupKey, java.lang.Class groupType)
          LockableEntityGroupImpl constructor.
 
Method Summary
 void delete()
          Delegates to the factory.
 IEntityLock getLock()
           
protected  ILockableGroupService getLockableGroupService()
           
private  void primUpdate(boolean renewLock)
          Ask the service to update this group (in the store), update the back-pointers of the updated members, and force the retrieval of containing groups in case the memberships of THIS group have changed during the time the group has been locked.
private  void primUpdateMembers(boolean renewLock)
          Ask the service to update this group (in the store), update the back-pointers of the updated members, and force the retrieval of containing groups in case the memberships of THIS group have changed during the time the group has been locked.
 void setLock(IEntityLock newLock)
           
 java.lang.String toString()
          Returns a String that represents the value of this object.
 void update()
          Delegate to the factory.
 void updateAndRenewLock()
          Updates the group and its members and renews the lock.
 void updateMembers()
          Delegate to the factory.
 void updateMembersAndRenewLock()
          Updates the members and renews the lock.
 
Methods inherited from class org.jasig.portal.groups.EntityGroupImpl
addMember, areMemberKeysInitialized, clearPendingUpdates, contains, deepContains, equals, getAddedMembers, getAllEntities, getAllMembers, getCompositeEntityIdentifier, getCreatorID, getDescription, getEntities, getEntityIdentifier, getEntityKey, getEntityType, getGroupID, getLeafType, getLocalGroupService, getLocalKey, getMemberEntities, getMemberGroupNamed, getMemberGroups, getMembers, getName, getRemovedMembers, getService, getServiceName, getType, hasAdds, hasDeletes, hashCode, hasMembers, isDirty, isEditable, isGroup, primAddMember, primGetAllEntities, primGetAllMembers, primRemoveMember, primSetName, removeMember, setCreatorID, setDescription, setLocalGroupService, setName, setServiceName
 
Methods inherited from class org.jasig.portal.groups.GroupMemberImpl
addGroup, castAndCopyHashSet, getAllContainingGroups, getCacheKey, getCompositeGroupService, getContainingGroups, getKey, getUnderlyingEntityIdentifier, isDeepMemberOf, isEntity, isKnownEntityType, isMemberOf, primGetAllContainingGroups, removeGroup, setGroupKeysInitialized
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jasig.portal.groups.IEntityGroup
addMember, getCreatorID, getDescription, getLocalKey, getName, getServiceName, isEditable, removeMember, setCreatorID, setDescription, setLocalGroupService, setName
 
Methods inherited from interface org.jasig.portal.groups.IGroupMember
contains, deepContains, equals, getAllContainingGroups, getAllEntities, getAllMembers, getContainingGroups, getEntities, getEntityType, getKey, getLeafType, getMemberGroupNamed, getMembers, getType, getUnderlyingEntityIdentifier, hashCode, hasMembers, isDeepMemberOf, isEntity, isGroup, isMemberOf
 
Methods inherited from interface org.jasig.portal.IBasicEntity
getEntityIdentifier
 

Field Detail

lock

protected IEntityLock lock
Constructor Detail

LockableEntityGroupImpl

public LockableEntityGroupImpl(java.lang.String groupKey,
                               java.lang.Class groupType)
                        throws GroupsException
LockableEntityGroupImpl constructor.

Parameters:
groupKey - java.lang.String
groupType - java.lang.Class
Throws:
GroupsException
Method Detail

delete

public void delete()
            throws GroupsException
Delegates to the factory.

Specified by:
delete in interface IEntityGroup
Overrides:
delete in class EntityGroupImpl
Throws:
GroupsException - if the delete cannot be performed.

getLock

public IEntityLock getLock()
Specified by:
getLock in interface ILockableEntityGroup
Returns:
org.jasig.portal.concurrency.IEntityLock

getLockableGroupService

protected ILockableGroupService getLockableGroupService()
                                                 throws GroupsException
Returns:
org.jasig.portal.groups.ILockableGroupService
Throws:
GroupsException

primUpdate

private void primUpdate(boolean renewLock)
                 throws GroupsException
Ask the service to update this group (in the store), update the back-pointers of the updated members, and force the retrieval of containing groups in case the memberships of THIS group have changed during the time the group has been locked.

Throws:
GroupsException

primUpdateMembers

private void primUpdateMembers(boolean renewLock)
                        throws GroupsException
Ask the service to update this group (in the store), update the back-pointers of the updated members, and force the retrieval of containing groups in case the memberships of THIS group have changed during the time the group has been locked.

Throws:
GroupsException

setLock

public void setLock(IEntityLock newLock)
Specified by:
setLock in interface ILockableEntityGroup
Parameters:
newLock - org.jasig.portal.concurrency.IEntityLock

toString

public java.lang.String toString()
Description copied from class: EntityGroupImpl
Returns a String that represents the value of this object.

Overrides:
toString in class EntityGroupImpl
Returns:
a string representation of the receiver

update

public void update()
            throws GroupsException
Description copied from class: EntityGroupImpl
Delegate to the factory.

Specified by:
update in interface IEntityGroup
Overrides:
update in class EntityGroupImpl
Throws:
GroupsException - if the update cannot be performed.

updateAndRenewLock

public void updateAndRenewLock()
                        throws GroupsException
Description copied from interface: ILockableEntityGroup
Updates the group and its members and renews the lock.

Specified by:
updateAndRenewLock in interface ILockableEntityGroup
Throws:
GroupsException

updateMembers

public void updateMembers()
                   throws GroupsException
Description copied from class: EntityGroupImpl
Delegate to the factory.

Specified by:
updateMembers in interface IEntityGroup
Overrides:
updateMembers in class EntityGroupImpl
Throws:
GroupsException - if the update cannot be performed.

updateMembersAndRenewLock

public void updateMembersAndRenewLock()
                               throws GroupsException
Description copied from interface: ILockableEntityGroup
Updates the members and renews the lock.

Specified by:
updateMembersAndRenewLock in interface ILockableEntityGroup
Throws:
GroupsException