1
2
3
4
5
6
7 package gov.bnl.gums;
8
9 /*** A user group that is defined by a list of users stored in some way, allowing
10 * to add and remove users. The persistance layer is implemented through an
11 * interface, allowing different storage frameworks (i.e. database, LDAP, file)
12 * <p>
13 * This class will provide also configurable data caching.
14 *
15 * @author Gabriele Carcassi
16 */
17 public class ManualUserGroup implements UserGroup {
18
19 private ManualUserGroupDB db;
20 private String name;
21 private PersistenceFactory persistenceFactory;
22
23 public java.util.List getMemberList() {
24 return db.retrieveMembers();
25 }
26
27 public String getName() {
28 return name;
29 }
30
31 public boolean isInGroup(GridUser user) {
32 return db.isMemberInGroup(user);
33 }
34
35 public void updateMembers() {
36 }
37
38 public void addMember(GridUser user) {
39 db.addMember(user);
40 }
41
42 public boolean removeMember(GridUser user) {
43 return db.removeMember(user);
44 }
45
46 public String getPersistenceFactory() {
47 return persistenceFactory.getName();
48 }
49
50 public void setPersistence(PersistenceFactory persistenceFactory, String name) {
51 this.persistenceFactory = persistenceFactory;
52 this.name = name;
53 db = persistenceFactory.retrieveManualUserGroupDB(name);
54 }
55
56 public String toString() {
57 if (persistenceFactory == null) {
58 return "ManualGroup: persistenceFactory=null - group='" + name + "'";
59 } else {
60 return "ManualGroup: persistenceFactory='" + persistenceFactory.getName() + "' - group='" + name + "'";
61 }
62 }
63
64 }