|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jasig.portal.groups.ReferenceComponentGroupService
org.jasig.portal.groups.ReferenceCompositeGroupService
org.jasig.portal.groups.ReferenceIndividualGroupService
public class ReferenceIndividualGroupService
Reference individual, or leaf, group service.
Field Summary | |
---|---|
protected IEntitySearcher |
entitySearcher
|
protected IEntityGroupStore |
groupFactory
|
private static org.apache.commons.logging.Log |
log
|
protected ComponentGroupServiceDescriptor |
serviceDescriptor
|
Fields inherited from class org.jasig.portal.groups.ReferenceCompositeGroupService |
---|
defaultService, entityFactory |
Fields inherited from class org.jasig.portal.groups.ReferenceComponentGroupService |
---|
componentServices, serviceName |
Constructor Summary | |
---|---|
ReferenceIndividualGroupService()
ReferenceGroupsService constructor. |
|
ReferenceIndividualGroupService(ComponentGroupServiceDescriptor svcDescriptor)
ReferenceGroupsService constructor. |
Method Summary | |
---|---|
protected boolean |
cacheInUse()
Answers if IGroupMembers are being cached. |
boolean |
contains(IEntityGroup group,
IGroupMember member)
Answers if group contains member . |
void |
deleteGroup(IEntityGroup group)
Removes the IEntityGroup from the cache and the store. |
void |
deleteGroup(ILockableEntityGroup group)
Removes the ILockableEntityGroup from the cache and the store,
including both parent and child memberships. |
private EntityIdentifier[] |
filterEntities(EntityIdentifier[] entities,
IEntityGroup ancestor)
|
java.util.Iterator |
findContainingGroups(IGroupMember gm)
Returns and caches the containing groups for the IGroupMember |
IEntityGroup |
findGroup(CompositeEntityIdentifier ent)
Returns a pre-existing IEntityGroup or null if it
does not exist. |
IEntityGroup |
findGroup(java.lang.String key)
Returns a pre-existing IEntityGroup or null if it
does not exist. |
protected IEntityGroup |
findGroupWithCache(CompositeEntityIdentifier ent)
Returns a pre-existing IEntityGroup or null if it
does not exist. |
protected IEntityGroup |
findGroupWithCache(java.lang.String key)
Returns a pre-existing IEntityGroup or null if it
does not exist. |
ILockableEntityGroup |
findGroupWithLock(java.lang.String key,
java.lang.String owner)
Returns a pre-existing ILockableEntityGroup or null if the
group is not found. |
ILockableEntityGroup |
findGroupWithLock(java.lang.String key,
java.lang.String owner,
int secs)
Returns a pre-existing ILockableEntityGroup or null if the
group is not found. |
protected java.util.Iterator |
findLocalMemberGroups(IEntityGroup eg)
Returns and caches the member groups for the IEntityGroup |
java.util.Iterator |
findMemberEntities(IEntityGroup group)
Finds the IEntities that are members of group . |
java.util.Iterator |
findMemberGroups(IEntityGroup eg)
Returns member groups for the IEntityGroup . |
java.util.Iterator |
findMembers(IEntityGroup eg)
Returns and members for the IEntityGroup . |
IEntity |
getEntity(java.lang.String key,
java.lang.Class type)
Returns an IEntity representing a portal entity. |
IEntityStore |
getEntityFactory()
Returns an IEntity representing a portal entity. |
protected IEntityGroup |
getGroupFromCache(java.lang.String key)
Returns a cached IEntityGroup or null if it has not been cached. |
IGroupMember |
getGroupMember(EntityIdentifier underlyingEntityIdentifier)
Returns an IGroupMember representing either a group or a
portal entity, based on the EntityIdentifier , which
refers to the UNDERLYING entity for the IGroupMember . |
IGroupMember |
getGroupMember(java.lang.String key,
java.lang.Class type)
Returns an IGroupMember representing either a group or a
portal entity. |
IEntityGroupStore |
getGroupStore()
Returns the implementation of IEntityGroupStore whose class name
was retrieved by the PropertiesManager (see initialize()). |
protected ComponentGroupServiceDescriptor |
getServiceDescriptor()
|
private void |
initialize()
|
boolean |
isEditable()
Answers if this service is updateable by the portal. |
boolean |
isEditable(IEntityGroup group)
Answers if the group can be updated or deleted in the store. |
protected boolean |
isForeign(IGroupMember member)
A foreign member is a group from a different service. |
protected boolean |
isInternallyManaged()
Answers if this service is managed by the portal and is therefore updatable. |
boolean |
isLeafService()
Answers if this service is a leaf in the composite; a service that actually operates on groups. |
IEntityGroup |
newGroup(java.lang.Class type)
Returns a new IEntityGroup for the given Class with an unused
key. |
protected IEntityGroup |
primFindGroup(java.lang.String localKey)
Returns a pre-existing IEntityGroup or null if it
does not exist. |
protected IEntity |
primGetEntity(java.lang.String key,
java.lang.Class type)
Returns an IEntity representing a portal entity. |
private void |
removeDeletedGroupFromContainingGroups(ILockableEntityGroup group)
Removes the ILockableEntityGroup from its containing groups. |
private EntityIdentifier[] |
removeDuplicates(EntityIdentifier[] entities)
|
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[] |
searchForEntities(java.lang.String query,
int method,
java.lang.Class type,
IEntityGroup ancestor)
Find EntityIdentifiers for entities whose name matches the query string according to the specified method, is of the specified type and descends from the specified group |
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 |
EntityIdentifier[] |
searchForGroups(java.lang.String query,
int method,
java.lang.Class leaftype,
IEntityGroup ancestor)
Find EntityIdentifiers for groups whose name matches the query string according to the specified method, has the provided leaf type and descends from the specified group |
protected void |
synchronizeGroupMembersOnDelete(IEntityGroup group)
Remove the back pointers of the group members of the deleted group. |
protected void |
synchronizeGroupMembersOnUpdate(IEntityGroup group)
Adjust the back pointers of the updated group members to either add or remove the parent group. |
protected void |
throwExceptionIfNotInternallyManaged()
|
void |
updateGroup(IEntityGroup group)
Update the store and the updated members. |
void |
updateGroup(ILockableEntityGroup group)
Updates the ILockableEntityGroup in the cache and the store. |
void |
updateGroup(ILockableEntityGroup group,
boolean renewLock)
Updates the ILockableEntityGroup in the store and removes
it from the cache. |
void |
updateGroupMembers(IEntityGroup group)
Update the store and the updated members. |
void |
updateGroupMembers(ILockableEntityGroup group)
Updates the ILockableEntityGroup in the cache and the store. |
void |
updateGroupMembers(ILockableEntityGroup group,
boolean renewLock)
Updates the ILockableEntityGroup in the store and removes
it from the cache. |
Methods inherited from class org.jasig.portal.groups.ReferenceCompositeGroupService |
---|
cacheAdd, cacheRemove, cacheUpdate, getComponentService, getComponentService, getDefaultService, getEntity, getEntityFromCache, initializeComponentServices, newCompositeEntityIdentifier, newGroup, setComponentServices |
Methods inherited from class org.jasig.portal.groups.ReferenceComponentGroupService |
---|
getComponentServices, getServiceName, setServiceName |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.jasig.portal.groups.ICompositeGroupService |
---|
getEntity, newGroup |
Methods inherited from interface org.jasig.portal.groups.IComponentGroupService |
---|
getComponentServices, getServiceName, setServiceName |
Field Detail |
---|
private static final org.apache.commons.logging.Log log
protected ComponentGroupServiceDescriptor serviceDescriptor
protected IEntityGroupStore groupFactory
protected IEntitySearcher entitySearcher
Constructor Detail |
---|
public ReferenceIndividualGroupService() throws GroupsException
GroupsException
public ReferenceIndividualGroupService(ComponentGroupServiceDescriptor svcDescriptor) throws GroupsException
GroupsException
Method Detail |
---|
protected boolean cacheInUse()
IGroupMembers
are being cached.
public void deleteGroup(IEntityGroup group) throws GroupsException
IEntityGroup
from the cache and the store.
deleteGroup
in interface IGroupService
deleteGroup
in interface IIndividualGroupService
group
- IEntityGroup
GroupsException
private void removeDeletedGroupFromContainingGroups(ILockableEntityGroup group) throws GroupsException
ILockableEntityGroup
from its containing groups.
The finally
block tries to release any groups that are still
locked, which can occur if an attempt to remove the group from one of
its containing groups fails and throws a GroupsException. In this event,
we do not try to roll back any successful removes, since that would probably
fail anyway.
group
- ILockableEntityGroup
GroupsException
public void deleteGroup(ILockableEntityGroup group) throws GroupsException
ILockableEntityGroup
from the cache and the store,
including both parent and child memberships.
deleteGroup
in interface ILockableGroupService
group
- ILockableEntityGroup
GroupsException
private EntityIdentifier[] filterEntities(EntityIdentifier[] entities, IEntityGroup ancestor) throws GroupsException
GroupsException
public java.util.Iterator findContainingGroups(IGroupMember gm) throws GroupsException
IGroupMember
findContainingGroups
in interface ICompositeGroupService
findContainingGroups
in interface IGroupService
findContainingGroups
in class ReferenceCompositeGroupService
gm
- IGroupMember
GroupsException
public IEntityGroup findGroup(java.lang.String key) throws GroupsException
IEntityGroup
or null if it
does not exist.
findGroup
in interface ICompositeGroupService
findGroup
in interface IGroupService
findGroup
in class ReferenceCompositeGroupService
GroupsException
public IEntityGroup findGroup(CompositeEntityIdentifier ent) throws GroupsException
IEntityGroup
or null if it
does not exist.
findGroup
in interface IIndividualGroupService
ent
- CompositeEntityIdentifier
GroupsException
protected IEntityGroup findGroupWithCache(java.lang.String key) throws GroupsException
IEntityGroup
or null if it
does not exist.
GroupsException
protected IEntityGroup findGroupWithCache(CompositeEntityIdentifier ent) throws GroupsException
IEntityGroup
or null if it
does not exist.
GroupsException
public ILockableEntityGroup findGroupWithLock(java.lang.String key, java.lang.String owner) throws GroupsException
ILockableEntityGroup
or null if the
group is not found.
findGroupWithLock
in interface ICompositeGroupService
findGroupWithLock
in interface ILockableGroupService
findGroupWithLock
in class ReferenceCompositeGroupService
key
- String - the group key.owner
- String - the lock owner.
GroupsException
public ILockableEntityGroup findGroupWithLock(java.lang.String key, java.lang.String owner, int secs) throws GroupsException
ILockableEntityGroup
or null if the
group is not found.
findGroupWithLock
in interface ILockableGroupService
key
- String - the group key.owner
- String - the lock owner.secs
- int - the duration of the lock in seconds.
GroupsException
protected java.util.Iterator findLocalMemberGroups(IEntityGroup eg) throws GroupsException
IEntityGroup
eg
- IEntityGroup
GroupsException
public java.util.Iterator findMemberEntities(IEntityGroup group) throws GroupsException
IEntities
that are members of group
.
GroupsException
public java.util.Iterator findMemberGroups(IEntityGroup eg) throws GroupsException
IEntityGroup
. First get the
member groups that are local to this service. Then retrieve the keys of
all of the member groups and ask the GroupService to find the groups
we do not yet have.
findMemberGroups
in interface IGroupService
eg
- IEntityGroup
GroupsException
public java.util.Iterator findMembers(IEntityGroup eg) throws GroupsException
IEntityGroup
.
findMembers
in interface IIndividualGroupService
eg
- IEntityGroup
GroupsException
public IEntity getEntity(java.lang.String key, java.lang.Class type) throws GroupsException
IEntity
representing a portal entity. This does
not guarantee that the underlying entity actually exists.
getEntity
in interface ICompositeGroupService
getEntity
in interface IGroupService
getEntity
in class ReferenceCompositeGroupService
GroupsException
public IEntityStore getEntityFactory()
IEntity
representing a portal entity. This does
not guarantee that the entity actually exists.
protected IEntityGroup getGroupFromCache(java.lang.String key) throws CachingException
IEntityGroup
or null if it has not been cached.
CachingException
public IGroupMember getGroupMember(java.lang.String key, java.lang.Class type) throws GroupsException
IGroupMember
representing either a group or a
portal entity. If the parm type
is the group type,
the IGroupMember
is an IEntityGroup
else it is
an IEntity
.
getGroupMember
in interface ICompositeGroupService
getGroupMember
in interface IGroupService
getGroupMember
in class ReferenceCompositeGroupService
GroupsException
public IGroupMember getGroupMember(EntityIdentifier underlyingEntityIdentifier) throws GroupsException
IGroupMember
representing either a group or a
portal entity, based on the EntityIdentifier
, which
refers to the UNDERLYING entity for the IGroupMember
.
getGroupMember
in interface ICompositeGroupService
getGroupMember
in interface IGroupService
getGroupMember
in class ReferenceCompositeGroupService
GroupsException
public IEntityGroupStore getGroupStore() throws GroupsException
IEntityGroupStore
whose class name
was retrieved by the PropertiesManager (see initialize()).
getGroupStore
in interface IGroupService
GroupsException
protected ComponentGroupServiceDescriptor getServiceDescriptor()
private void initialize() throws GroupsException
GroupsException
public boolean isEditable(IEntityGroup group) throws GroupsException
isEditable
in interface IIndividualGroupService
group
- IEntityGroup
GroupsException
protected boolean isInternallyManaged()
public boolean isLeafService()
isLeafService
in interface IComponentGroupService
isLeafService
in class ReferenceComponentGroupService
public boolean isEditable()
isEditable
in interface IIndividualGroupService
public IEntityGroup newGroup(java.lang.Class type) throws GroupsException
IEntityGroup
for the given Class with an unused
key.
newGroup
in interface IGroupService
newGroup
in interface IIndividualGroupService
GroupsException
protected IEntityGroup primFindGroup(java.lang.String localKey) throws GroupsException
IEntityGroup
or null if it
does not exist.
primFindGroup
in class ReferenceCompositeGroupService
GroupsException
private EntityIdentifier[] removeDuplicates(EntityIdentifier[] entities)
public EntityIdentifier[] searchForEntities(java.lang.String query, int method, java.lang.Class type) throws GroupsException
ReferenceCompositeGroupService
searchForEntities
in interface ICompositeGroupService
searchForEntities
in interface IGroupService
searchForEntities
in class ReferenceCompositeGroupService
GroupsException
public EntityIdentifier[] searchForEntities(java.lang.String query, int method, java.lang.Class type, IEntityGroup ancestor) throws GroupsException
ReferenceCompositeGroupService
searchForEntities
in interface ICompositeGroupService
searchForEntities
in interface IGroupService
searchForEntities
in class ReferenceCompositeGroupService
GroupsException
public EntityIdentifier[] searchForGroups(java.lang.String query, int method, java.lang.Class leaftype) throws GroupsException
ReferenceCompositeGroupService
searchForGroups
in interface ICompositeGroupService
searchForGroups
in interface IGroupService
searchForGroups
in class ReferenceCompositeGroupService
GroupsException
public EntityIdentifier[] searchForGroups(java.lang.String query, int method, java.lang.Class leaftype, IEntityGroup ancestor) throws GroupsException
ReferenceCompositeGroupService
searchForGroups
in interface ICompositeGroupService
searchForGroups
in interface IGroupService
searchForGroups
in class ReferenceCompositeGroupService
GroupsException
protected void throwExceptionIfNotInternallyManaged() throws GroupsException
GroupsException
public void updateGroup(IEntityGroup group) throws GroupsException
updateGroup
in interface IGroupService
updateGroup
in interface IIndividualGroupService
group
- IEntityGroup
GroupsException
public void updateGroup(ILockableEntityGroup group) throws GroupsException
ILockableEntityGroup
in the cache and the store.
updateGroup
in interface ILockableGroupService
group
- ILockableEntityGroup
GroupsException
public void updateGroup(ILockableEntityGroup group, boolean renewLock) throws GroupsException
ILockableEntityGroup
in the store and removes
it from the cache.
updateGroup
in interface ILockableGroupService
group
- ILockableEntityGroup
GroupsException
public void updateGroupMembers(IEntityGroup group) throws GroupsException
updateGroupMembers
in interface IGroupService
updateGroupMembers
in interface IIndividualGroupService
group
- IEntityGroup
GroupsException
public void updateGroupMembers(ILockableEntityGroup group) throws GroupsException
ILockableEntityGroup
in the cache and the store.
updateGroupMembers
in interface ILockableGroupService
group
- ILockableEntityGroup
GroupsException
public void updateGroupMembers(ILockableEntityGroup group, boolean renewLock) throws GroupsException
ILockableEntityGroup
in the store and removes
it from the cache.
updateGroupMembers
in interface ILockableGroupService
group
- ILockableEntityGroup
GroupsException
protected IEntity primGetEntity(java.lang.String key, java.lang.Class type) throws GroupsException
IEntity
representing a portal entity. This does
not guarantee that the underlying entity actually exists.
GroupsException
protected void synchronizeGroupMembersOnDelete(IEntityGroup group) throws GroupsException
group
- ILockableEntityGroup
GroupsException
protected void synchronizeGroupMembersOnUpdate(IEntityGroup group) throws GroupsException
group
- ILockableEntityGroup
GroupsException
public boolean contains(IEntityGroup group, IGroupMember member) throws GroupsException
group
contains member
.
If the group belongs to another service and the present service is
not editable, simply return false.
contains
in interface IIndividualGroupService
group
- org.jasig.portal.groups.IEntityGroupmember
- org.jasig.portal.groups.IGroupMember
GroupsException
protected boolean isForeign(IGroupMember member)
member
- IGroupMember
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |