Class 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.
    • Method Detail

      • afterPropertiesSet

        public void afterPropertiesSet()
                                throws Exception
        Specified by:
        afterPropertiesSet in interface org.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:
        findByName in interface com.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:
        findByNameWithAttributes in interface com.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:
        addAll in interface com.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.InvalidGroupException
        Adds the passed in group by calling the delegate dao's add method. Updates the cache to match the newly created group.
        Specified by:
        add in interface com.atlassian.crowd.embedded.spi.GroupDao
        Specified by:
        add in interface InternalGroupDao<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:
        addLocal in interface com.atlassian.crowd.embedded.spi.GroupDao
        Specified by:
        addLocal in interface InternalGroupDao<com.atlassian.crowd.model.group.InternalGroup>
        Throws:
        com.atlassian.crowd.exception.DirectoryNotFoundException
        com.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:
        update in interface com.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:
        rename in interface com.atlassian.crowd.embedded.spi.GroupDao
        Throws:
        com.atlassian.crowd.exception.GroupNotFoundException
        com.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:
        storeAttributes in interface com.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:
        removeAttribute in interface com.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:
        remove in interface com.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:
        search in interface com.atlassian.crowd.embedded.spi.GroupDao
      • internalFindByName

        public com.atlassian.crowd.model.group.InternalGroup internalFindByName​(long directoryId,
                                                                                String groupName)
                                                                         throws com.atlassian.crowd.exception.GroupNotFoundException
        Description copied from interface: InternalGroupDao
        Find a persistent group object from a given directory and group name
        Specified by:
        internalFindByName in interface InternalGroupDao<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.GroupNotFoundException
        Description copied from interface: InternalGroupDao
        Find the persistent group object that corresponds to the provided group.
        Specified by:
        internalFindByGroup in interface InternalGroupDao<com.atlassian.crowd.model.group.InternalGroup>
        Throws:
        com.atlassian.crowd.exception.GroupNotFoundException
      • removeAllGroups

        public void removeAllGroups​(long directoryId)
        Description copied from interface: InternalGroupDao
        Remove all groups from a particular directory (used when deleting an internal directory)
        Specified by:
        removeAllGroups in interface InternalGroupDao<com.atlassian.crowd.model.group.InternalGroup>
      • removeAllGroups

        public com.atlassian.crowd.util.BatchResult<String> removeAllGroups​(long directoryId,
                                                                            Set<String> groupNames)
        Specified by:
        removeAllGroups in interface com.atlassian.crowd.embedded.spi.GroupDao
      • getAllExternalIds

        public Set<String> getAllExternalIds​(long directoryId)
                                      throws com.atlassian.crowd.exception.DirectoryNotFoundException
        Specified by:
        getAllExternalIds in interface com.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:
        getGroupCount in interface com.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:
        getLocalGroupNames in interface com.atlassian.crowd.embedded.spi.GroupDao
        Throws:
        com.atlassian.crowd.exception.DirectoryNotFoundException
      • findByExternalIds

        public Map<String,​String> findByExternalIds​(long directoryId,
                                                          Set<String> externalIds)
        Specified by:
        findByExternalIds in interface com.atlassian.crowd.embedded.spi.GroupDao
      • findExternalIdsByNames

        public Map<String,​String> findExternalIdsByNames​(long directoryId,
                                                               Set<String> groupNames)
        Specified by:
        findExternalIdsByNames in interface com.atlassian.crowd.embedded.spi.GroupDao
      • getExternalGroupCount

        public long getExternalGroupCount​(long directoryId)
                                   throws com.atlassian.crowd.exception.DirectoryNotFoundException
        Specified by:
        getExternalGroupCount in interface com.atlassian.crowd.embedded.spi.GroupDao
        Throws:
        com.atlassian.crowd.exception.DirectoryNotFoundException