root / src / gr / grnet / pithos / web / client / catalog / UserCatalogs.java @ dc8cc18a
History | View | Annotate | Download (1.9 kB)
1 | cc0120ab | Christos KK Loverdos | package gr.grnet.pithos.web.client.catalog; |
---|---|---|---|
2 | cc0120ab | Christos KK Loverdos | |
3 | cc0120ab | Christos KK Loverdos | import gr.grnet.pithos.web.client.Helpers; |
4 | cc0120ab | Christos KK Loverdos | |
5 | cc0120ab | Christos KK Loverdos | import java.util.HashMap; |
6 | cc0120ab | Christos KK Loverdos | import java.util.Iterator; |
7 | cc0120ab | Christos KK Loverdos | import java.util.Map; |
8 | cc0120ab | Christos KK Loverdos | |
9 | cc0120ab | Christos KK Loverdos | /**
|
10 | cc0120ab | Christos KK Loverdos | * Holds one-to-one mappings from user IDs to respective user display names.
|
11 | cc0120ab | Christos KK Loverdos | *
|
12 | cc0120ab | Christos KK Loverdos | * The iterator returns map entries with id as the key and name as the value.
|
13 | cc0120ab | Christos KK Loverdos | */
|
14 | cc0120ab | Christos KK Loverdos | public class UserCatalogs implements Iterable<Map.Entry<String, String>>{ |
15 | cc0120ab | Christos KK Loverdos | private HashMap<String, String> id2name = new HashMap<String, String>(); |
16 | cc0120ab | Christos KK Loverdos | private HashMap<String, String> name2id = new HashMap<String, String>(); |
17 | cc0120ab | Christos KK Loverdos | |
18 | cc0120ab | Christos KK Loverdos | public UserCatalogs() {
|
19 | cc0120ab | Christos KK Loverdos | this(new HashMap<String, String>(), new HashMap<String, String>()); |
20 | cc0120ab | Christos KK Loverdos | } |
21 | cc0120ab | Christos KK Loverdos | |
22 | cc0120ab | Christos KK Loverdos | private UserCatalogs(HashMap<String, String> id2name, HashMap<String, String> name2id) { |
23 | cc0120ab | Christos KK Loverdos | this.id2name = id2name;
|
24 | cc0120ab | Christos KK Loverdos | this.name2id = name2id;
|
25 | cc0120ab | Christos KK Loverdos | } |
26 | cc0120ab | Christos KK Loverdos | |
27 | cc0120ab | Christos KK Loverdos | public UserCatalogs updateWithIDAndName(String id, String name) { |
28 | cc0120ab | Christos KK Loverdos | this.id2name.put(id, name);
|
29 | cc0120ab | Christos KK Loverdos | this.name2id.put(name, id);
|
30 | cc0120ab | Christos KK Loverdos | |
31 | cc0120ab | Christos KK Loverdos | return this; |
32 | cc0120ab | Christos KK Loverdos | } |
33 | cc0120ab | Christos KK Loverdos | |
34 | cc0120ab | Christos KK Loverdos | public UserCatalogs updateFrom(UserCatalogs other) {
|
35 | cc0120ab | Christos KK Loverdos | for(Map.Entry<String, String> otherIDAndName : other) { |
36 | cc0120ab | Christos KK Loverdos | this.updateWithIDAndName(otherIDAndName.getKey(), otherIDAndName.getValue());
|
37 | cc0120ab | Christos KK Loverdos | } |
38 | cc0120ab | Christos KK Loverdos | return this; |
39 | cc0120ab | Christos KK Loverdos | } |
40 | cc0120ab | Christos KK Loverdos | |
41 | cc0120ab | Christos KK Loverdos | public UserCatalogs copy() {
|
42 | cc0120ab | Christos KK Loverdos | return new UserCatalogs( |
43 | cc0120ab | Christos KK Loverdos | Helpers.copyHashMap(id2name), |
44 | cc0120ab | Christos KK Loverdos | Helpers.copyHashMap(name2id) |
45 | cc0120ab | Christos KK Loverdos | ); |
46 | cc0120ab | Christos KK Loverdos | } |
47 | cc0120ab | Christos KK Loverdos | |
48 | dc8cc18a | Christos KK Loverdos | public boolean hasID(String id) { |
49 | cc0120ab | Christos KK Loverdos | return id2name.containsKey(id);
|
50 | cc0120ab | Christos KK Loverdos | } |
51 | cc0120ab | Christos KK Loverdos | |
52 | dc8cc18a | Christos KK Loverdos | public boolean hasName(String name) { |
53 | dc8cc18a | Christos KK Loverdos | return name2id.containsKey(name);
|
54 | cc0120ab | Christos KK Loverdos | } |
55 | cc0120ab | Christos KK Loverdos | |
56 | dc8cc18a | Christos KK Loverdos | public String getDisplayName(String id) { |
57 | dc8cc18a | Christos KK Loverdos | return id2name.get(id);
|
58 | 1bb330dc | Christos KK Loverdos | } |
59 | 1bb330dc | Christos KK Loverdos | |
60 | dc8cc18a | Christos KK Loverdos | public String getUserID(String name) { |
61 | dc8cc18a | Christos KK Loverdos | return name2id.get(name);
|
62 | b9a1049a | Christos KK Loverdos | } |
63 | b9a1049a | Christos KK Loverdos | |
64 | cc0120ab | Christos KK Loverdos | @Override
|
65 | cc0120ab | Christos KK Loverdos | public Iterator<Map.Entry<String, String>> iterator() { |
66 | cc0120ab | Christos KK Loverdos | return id2name.entrySet().iterator();
|
67 | cc0120ab | Christos KK Loverdos | } |
68 | cc0120ab | Christos KK Loverdos | } |