Class CachedCrowdMembershipDao

  • All Implemented Interfaces:
    com.atlassian.crowd.embedded.spi.MembershipDao

    public final class CachedCrowdMembershipDao
    extends Object
    implements com.atlassian.crowd.embedded.spi.MembershipDao
    Caches membership information. Invalidation is done whenever any membership in the parent group changes.
    Since:
    3.5
    See Also:
    DefaultMembershipCache
    • Method Detail

      • isUserDirectMember

        public boolean isUserDirectMember​(long directoryId,
                                          String userName,
                                          String groupName)
        Specified by:
        isUserDirectMember in interface com.atlassian.crowd.embedded.spi.MembershipDao
      • isGroupDirectMember

        public boolean isGroupDirectMember​(long directoryId,
                                           String childGroup,
                                           String parentGroupName)
        Specified by:
        isGroupDirectMember in interface com.atlassian.crowd.embedded.spi.MembershipDao
      • addUserToGroup

        public void addUserToGroup​(long directoryId,
                                   String userName,
                                   String groupName)
                            throws com.atlassian.crowd.exception.UserNotFoundException,
                                   com.atlassian.crowd.exception.GroupNotFoundException,
                                   com.atlassian.crowd.exception.MembershipAlreadyExistsException
        Specified by:
        addUserToGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
        Throws:
        com.atlassian.crowd.exception.UserNotFoundException
        com.atlassian.crowd.exception.GroupNotFoundException
        com.atlassian.crowd.exception.MembershipAlreadyExistsException
      • addUserToGroups

        public com.atlassian.crowd.util.BatchResult<String> addUserToGroups​(long directoryId,
                                                                            String username,
                                                                            Set<String> groupNames)
                                                                     throws com.atlassian.crowd.exception.UserNotFoundException
        Specified by:
        addUserToGroups in interface com.atlassian.crowd.embedded.spi.MembershipDao
        Throws:
        com.atlassian.crowd.exception.UserNotFoundException
        Since:
        7.20
      • addAllUsersToGroup

        public com.atlassian.crowd.util.BatchResult<String> addAllUsersToGroup​(long directoryId,
                                                                               Collection<String> userNames,
                                                                               String groupName)
                                                                        throws com.atlassian.crowd.exception.GroupNotFoundException
        Specified by:
        addAllUsersToGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
        Throws:
        com.atlassian.crowd.exception.GroupNotFoundException
      • addGroupToGroup

        public void addGroupToGroup​(long directoryId,
                                    String childGroupName,
                                    String parentGroupName)
                             throws com.atlassian.crowd.exception.GroupNotFoundException,
                                    com.atlassian.crowd.exception.MembershipAlreadyExistsException
        Specified by:
        addGroupToGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
        Throws:
        com.atlassian.crowd.exception.GroupNotFoundException
        com.atlassian.crowd.exception.MembershipAlreadyExistsException
      • removeUserFromGroup

        public void removeUserFromGroup​(long directoryId,
                                        String userName,
                                        String groupName)
                                 throws com.atlassian.crowd.exception.UserNotFoundException,
                                        com.atlassian.crowd.exception.GroupNotFoundException,
                                        com.atlassian.crowd.exception.MembershipNotFoundException
        Specified by:
        removeUserFromGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
        Throws:
        com.atlassian.crowd.exception.UserNotFoundException
        com.atlassian.crowd.exception.GroupNotFoundException
        com.atlassian.crowd.exception.MembershipNotFoundException
      • removeGroupFromGroup

        public void removeGroupFromGroup​(long directoryId,
                                         String childGroupName,
                                         String parentGroupName)
                                  throws com.atlassian.crowd.exception.GroupNotFoundException,
                                         com.atlassian.crowd.exception.MembershipNotFoundException
        Specified by:
        removeGroupFromGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
        Throws:
        com.atlassian.crowd.exception.GroupNotFoundException
        com.atlassian.crowd.exception.MembershipNotFoundException
      • countDirectMembersOfGroup

        public com.atlassian.crowd.util.BoundedCount countDirectMembersOfGroup​(long directoryId,
                                                                               String groupName,
                                                                               int potentialMaxCount)
        Specified by:
        countDirectMembersOfGroup in interface com.atlassian.crowd.embedded.spi.MembershipDao
      • search

        public <T> List<T> search​(long directoryId,
                                  com.atlassian.crowd.search.query.membership.MembershipQuery<T> query)
        This implementation uses the existing cached data for searches returning strings, and for searches returning Group objects when searching for Groups as well. Missing results for these kinds of searches will also be cached. Any other searches will simply delegate to the underlying implementation.
        Specified by:
        search in interface com.atlassian.crowd.embedded.spi.MembershipDao
      • searchGroupedByName

        public <T> com.google.common.collect.ListMultimap<String,​T> searchGroupedByName​(long directoryId,
                                                                                              com.atlassian.crowd.search.query.membership.MembershipQuery<T> query)
        searchGroupedByName accepts a query with the set of group names to search. Returns a multimap where key is the group name and the values are either parent or child group names. It can search for either for parent or child groups. Getting groups for users is not supported by HibernateMembershipDao.searchGroupedByName at the moment.
        Specified by:
        searchGroupedByName in interface com.atlassian.crowd.embedded.spi.MembershipDao
        Since:
        7.11
      • constrainResults

        public static <T> List<T> constrainResults​(Collection<T> results,
                                                   int startIndex,
                                                   int maxResults)