]> WPIA git - gigi.git/blob - src/org/cacert/gigi/dbObjects/Group.java
ADD: user group management (with testcase)
[gigi.git] / src / org / cacert / gigi / dbObjects / Group.java
1 package org.cacert.gigi.dbObjects;
2
3 import java.util.HashMap;
4
5 public class Group {
6
7     private static HashMap<String, Group> cache = new HashMap<>();
8
9     private final String dbName;
10
11     private Group(String name) {
12         dbName = name;
13     }
14
15     @Override
16     public int hashCode() {
17         final int prime = 31;
18         int result = 1;
19         result = prime * result + ((dbName == null) ? 0 : dbName.hashCode());
20         return result;
21     }
22
23     @Override
24     public boolean equals(Object obj) {
25         if (this == obj) {
26             return true;
27         }
28         if (obj == null) {
29             return false;
30         }
31         if (getClass() != obj.getClass()) {
32             return false;
33         }
34         Group other = (Group) obj;
35         if (dbName == null) {
36             if (other.dbName != null) {
37                 return false;
38             }
39         } else if ( !dbName.equals(other.dbName)) {
40             return false;
41         }
42         return true;
43     }
44
45     public static synchronized Group getByString(String name) {
46         Group g = cache.get(name);
47         if (g == null) {
48             g = new Group(name);
49             cache.put(name, g);
50         }
51         return g;
52     }
53
54     public String getDatabaseName() {
55         return dbName;
56     }
57 }