1 package com.atlassian.user.impl.cache;
2
3 import com.atlassian.user.User;
4 import com.atlassian.user.Group;
5 import com.atlassian.cache.*;
6
7 import java.util.List;
8 import java.util.Iterator;
9
10
11
12
13
14
15
16
17
18 public class MembershipCache
19 {
20 private final CacheFactory cacheFactory;
21 private final String cacheName;
22
23 public MembershipCache(CacheFactory cacheFactory, String cacheName)
24 {
25 this.cacheFactory = cacheFactory;
26 this.cacheName = cacheName;
27 }
28
29 private com.atlassian.cache.Cache getCache()
30 {
31 return cacheFactory.getCache(cacheName);
32 }
33
34 protected String getMembershipKey(String username, Group group)
35 {
36 return username + "_" + group.getName();
37 }
38
39 public void put(User user, Group group, boolean isMember)
40 {
41 getCache().put(getMembershipKey(user.getName(), group), Boolean.valueOf(isMember));
42 }
43
44
45
46
47
48
49 public Boolean get(User user, Group group)
50 {
51 return (Boolean) getCache().get(getMembershipKey(user.getName(), group));
52 }
53
54 public void remove(User user, Group group)
55 {
56 getCache().remove(getMembershipKey(user.getName(), group));
57 }
58
59
60
61
62
63
64
65
66
67 public void remove(List usernames, Group group)
68 {
69 for (Iterator iter = usernames.iterator(); iter.hasNext();)
70 {
71 String username = (String) iter.next();
72 getCache().remove(getMembershipKey(username, group));
73 }
74 }
75 }