Class CachedCrowdGroupDao
- java.lang.Object
-
- com.atlassian.confluence.impl.user.crowd.CachedCrowdGroupDao
-
- All Implemented Interfaces:
InternalGroupDao<com.atlassian.crowd.model.group.InternalGroup>,com.atlassian.crowd.embedded.spi.GroupDao,org.springframework.beans.factory.InitializingBean
public class CachedCrowdGroupDao extends Object implements InternalGroupDao<com.atlassian.crowd.model.group.InternalGroup>, org.springframework.beans.factory.InitializingBean
A caching decorator for an InternalUserDao.
-
-
Constructor Summary
Constructors Constructor Description CachedCrowdGroupDao(InternalGroupDao<com.atlassian.crowd.model.group.InternalGroup> delegate, TransactionAwareCacheFactory cacheFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description com.atlassian.crowd.model.group.InternalGroupadd(com.atlassian.crowd.model.group.Group group)Adds the passed in group by calling the delegate dao's add method.com.atlassian.crowd.util.BatchResult<com.atlassian.crowd.model.group.Group>addAll(Set<? extends com.atlassian.crowd.model.group.Group> groups)Removes all the adding groups from the cache and delegates to the addAll method of the delegate DAO.com.atlassian.crowd.model.group.InternalGroupaddLocal(com.atlassian.crowd.model.group.Group group)voidafterPropertiesSet()Map<String,String>findByExternalIds(long directoryId, Set<String> externalIds)com.atlassian.crowd.model.group.InternalDirectoryGroupfindByName(long directoryId, String name)com.atlassian.crowd.model.group.GroupWithAttributesfindByNameWithAttributes(long directoryId, String name)Map<String,String>findExternalIdsByNames(long directoryId, Set<String> groupNames)Set<String>getAllExternalIds(long directoryId)longgetExternalGroupCount(long directoryId)longgetGroupCount(long directoryId)Set<String>getLocalGroupNames(long directoryId)com.atlassian.crowd.model.group.InternalGroupinternalFindByGroup(com.atlassian.crowd.model.group.Group group)Find the persistent group object that corresponds to the provided group.com.atlassian.crowd.model.group.InternalGroupinternalFindByName(long directoryId, String groupName)Find a persistent group object from a given directory and group namevoidremove(com.atlassian.crowd.model.group.Group group)voidremoveAllGroups(long directoryId)Remove all groups from a particular directory (used when deleting an internal directory)com.atlassian.crowd.util.BatchResult<String>removeAllGroups(long directoryId, Set<String> groupNames)voidremoveAttribute(com.atlassian.crowd.model.group.Group group, String attributeName)com.atlassian.crowd.model.group.Grouprename(com.atlassian.crowd.model.group.Group group, String newName)<T> List<T>search(long directoryId, com.atlassian.crowd.search.query.entity.EntityQuery<T> query)voidstoreAttributes(com.atlassian.crowd.model.group.Group group, Map<String,Set<String>> attributes)com.atlassian.crowd.model.group.Groupupdate(com.atlassian.crowd.model.group.Group group)
-
-
-
Constructor Detail
-
CachedCrowdGroupDao
public CachedCrowdGroupDao(InternalGroupDao<com.atlassian.crowd.model.group.InternalGroup> delegate, TransactionAwareCacheFactory cacheFactory)
- Since:
- 7.5
-
-
Method Detail
-
afterPropertiesSet
public void afterPropertiesSet() throws Exception- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Throws:
Exception
-
findByName
public com.atlassian.crowd.model.group.InternalDirectoryGroup findByName(long directoryId, String name) throws com.atlassian.crowd.exception.GroupNotFoundException- Specified by:
findByNamein interfacecom.atlassian.crowd.embedded.spi.GroupDao- Throws:
com.atlassian.crowd.exception.GroupNotFoundException
-
findByNameWithAttributes
public com.atlassian.crowd.model.group.GroupWithAttributes findByNameWithAttributes(long directoryId, String name) throws com.atlassian.crowd.exception.GroupNotFoundException- Specified by:
findByNameWithAttributesin interfacecom.atlassian.crowd.embedded.spi.GroupDao- Throws:
com.atlassian.crowd.exception.GroupNotFoundException
-
addAll
public com.atlassian.crowd.util.BatchResult<com.atlassian.crowd.model.group.Group> addAll(Set<? extends com.atlassian.crowd.model.group.Group> groups) throws com.atlassian.crowd.exception.DirectoryNotFoundException
Removes all the adding groups from the cache and delegates to the addAll method of the delegate DAO.This method will not try and update the cache like
add(Group)because:- We want to delegate to the "addAll" method on the delegate as its the fastest way to add a large number of groups, we can't just delegate to add method
- Unlike the add method, we don't get a reference to the added group so we can't reliably update the cache, so we just remove it.
- Specified by:
addAllin interfacecom.atlassian.crowd.embedded.spi.GroupDao- Parameters:
groups- the groups to add- Returns:
- a BatchResult describing the result
- Throws:
com.atlassian.crowd.exception.DirectoryNotFoundException- if the directory for any of the groups is not found
-
add
public com.atlassian.crowd.model.group.InternalGroup add(com.atlassian.crowd.model.group.Group group) throws com.atlassian.crowd.exception.DirectoryNotFoundException, com.atlassian.crowd.exception.InvalidGroupExceptionAdds the passed in group by calling the delegate dao's add method. Updates the cache to match the newly created group.- Specified by:
addin interfacecom.atlassian.crowd.embedded.spi.GroupDao- Specified by:
addin interfaceInternalGroupDao<com.atlassian.crowd.model.group.InternalGroup>- Parameters:
group- the group to add- Returns:
- the added group
- Throws:
com.atlassian.crowd.exception.DirectoryNotFoundException- if the directory cannot be found.com.atlassian.crowd.exception.InvalidGroupException
-
addLocal
public com.atlassian.crowd.model.group.InternalGroup addLocal(com.atlassian.crowd.model.group.Group group) throws com.atlassian.crowd.exception.DirectoryNotFoundException, com.atlassian.crowd.exception.InvalidGroupException- Specified by:
addLocalin interfacecom.atlassian.crowd.embedded.spi.GroupDao- Specified by:
addLocalin interfaceInternalGroupDao<com.atlassian.crowd.model.group.InternalGroup>- Throws:
com.atlassian.crowd.exception.DirectoryNotFoundExceptioncom.atlassian.crowd.exception.InvalidGroupException
-
update
public com.atlassian.crowd.model.group.Group update(com.atlassian.crowd.model.group.Group group) throws com.atlassian.crowd.exception.GroupNotFoundException- Specified by:
updatein interfacecom.atlassian.crowd.embedded.spi.GroupDao- Throws:
com.atlassian.crowd.exception.GroupNotFoundException
-
rename
public com.atlassian.crowd.model.group.Group rename(com.atlassian.crowd.model.group.Group group, String newName) throws com.atlassian.crowd.exception.GroupNotFoundException, com.atlassian.crowd.exception.InvalidGroupException- Specified by:
renamein interfacecom.atlassian.crowd.embedded.spi.GroupDao- Throws:
com.atlassian.crowd.exception.GroupNotFoundExceptioncom.atlassian.crowd.exception.InvalidGroupException
-
storeAttributes
public void storeAttributes(com.atlassian.crowd.model.group.Group group, Map<String,Set<String>> attributes) throws com.atlassian.crowd.exception.GroupNotFoundException- Specified by:
storeAttributesin interfacecom.atlassian.crowd.embedded.spi.GroupDao- Throws:
com.atlassian.crowd.exception.GroupNotFoundException
-
removeAttribute
public void removeAttribute(com.atlassian.crowd.model.group.Group group, String attributeName) throws com.atlassian.crowd.exception.GroupNotFoundException- Specified by:
removeAttributein interfacecom.atlassian.crowd.embedded.spi.GroupDao- Throws:
com.atlassian.crowd.exception.GroupNotFoundException
-
remove
public void remove(com.atlassian.crowd.model.group.Group group) throws com.atlassian.crowd.exception.GroupNotFoundException- Specified by:
removein interfacecom.atlassian.crowd.embedded.spi.GroupDao- Throws:
com.atlassian.crowd.exception.GroupNotFoundException
-
search
public <T> List<T> search(long directoryId, com.atlassian.crowd.search.query.entity.EntityQuery<T> query)
- Specified by:
searchin interfacecom.atlassian.crowd.embedded.spi.GroupDao
-
internalFindByName
public com.atlassian.crowd.model.group.InternalGroup internalFindByName(long directoryId, String groupName) throws com.atlassian.crowd.exception.GroupNotFoundExceptionDescription copied from interface:InternalGroupDaoFind a persistent group object from a given directory and group name- Specified by:
internalFindByNamein interfaceInternalGroupDao<com.atlassian.crowd.model.group.InternalGroup>- Throws:
com.atlassian.crowd.exception.GroupNotFoundException
-
internalFindByGroup
public com.atlassian.crowd.model.group.InternalGroup internalFindByGroup(com.atlassian.crowd.model.group.Group group) throws com.atlassian.crowd.exception.GroupNotFoundExceptionDescription copied from interface:InternalGroupDaoFind the persistent group object that corresponds to the provided group.- Specified by:
internalFindByGroupin interfaceInternalGroupDao<com.atlassian.crowd.model.group.InternalGroup>- Throws:
com.atlassian.crowd.exception.GroupNotFoundException
-
removeAllGroups
public void removeAllGroups(long directoryId)
Description copied from interface:InternalGroupDaoRemove all groups from a particular directory (used when deleting an internal directory)- Specified by:
removeAllGroupsin interfaceInternalGroupDao<com.atlassian.crowd.model.group.InternalGroup>
-
removeAllGroups
public com.atlassian.crowd.util.BatchResult<String> removeAllGroups(long directoryId, Set<String> groupNames)
- Specified by:
removeAllGroupsin interfacecom.atlassian.crowd.embedded.spi.GroupDao
-
getAllExternalIds
public Set<String> getAllExternalIds(long directoryId) throws com.atlassian.crowd.exception.DirectoryNotFoundException
- Specified by:
getAllExternalIdsin interfacecom.atlassian.crowd.embedded.spi.GroupDao- Throws:
com.atlassian.crowd.exception.DirectoryNotFoundException
-
getGroupCount
public long getGroupCount(long directoryId) throws com.atlassian.crowd.exception.DirectoryNotFoundException- Specified by:
getGroupCountin interfacecom.atlassian.crowd.embedded.spi.GroupDao- Throws:
com.atlassian.crowd.exception.DirectoryNotFoundException
-
getLocalGroupNames
public Set<String> getLocalGroupNames(long directoryId) throws com.atlassian.crowd.exception.DirectoryNotFoundException
- Specified by:
getLocalGroupNamesin interfacecom.atlassian.crowd.embedded.spi.GroupDao- Throws:
com.atlassian.crowd.exception.DirectoryNotFoundException
-
findByExternalIds
public Map<String,String> findByExternalIds(long directoryId, Set<String> externalIds)
- Specified by:
findByExternalIdsin interfacecom.atlassian.crowd.embedded.spi.GroupDao
-
findExternalIdsByNames
public Map<String,String> findExternalIdsByNames(long directoryId, Set<String> groupNames)
- Specified by:
findExternalIdsByNamesin interfacecom.atlassian.crowd.embedded.spi.GroupDao
-
getExternalGroupCount
public long getExternalGroupCount(long directoryId) throws com.atlassian.crowd.exception.DirectoryNotFoundException- Specified by:
getExternalGroupCountin interfacecom.atlassian.crowd.embedded.spi.GroupDao- Throws:
com.atlassian.crowd.exception.DirectoryNotFoundException
-
-