1package eu.siacs.conversations.entities;
2
3import java.util.Collections;
4import java.util.Hashtable;
5import java.util.Iterator;
6
7import eu.siacs.conversations.xml.Element;
8
9public class Presences {
10 private final Hashtable<String, Presence> presences = new Hashtable<>();
11
12 public Hashtable<String, Presence> getPresences() {
13 return this.presences;
14 }
15
16 public void updatePresence(String resource, Presence presence) {
17 synchronized (this.presences) {
18 this.presences.put(resource, presence);
19 }
20 }
21
22 public void removePresence(String resource) {
23 synchronized (this.presences) {
24 this.presences.remove(resource);
25 }
26 }
27
28 public void clearPresences() {
29 synchronized (this.presences) {
30 this.presences.clear();
31 }
32 }
33
34 public Presence getMostAvailablePresence() {
35 synchronized (this.presences) {
36 if (presences.size() < 1) { return null; }
37 return Collections.min(presences.values());
38 }
39 }
40
41 public int size() {
42 synchronized (this.presences) {
43 return presences.size();
44 }
45 }
46
47 public String[] asStringArray() {
48 synchronized (this.presences) {
49 final String[] presencesArray = new String[presences.size()];
50 presences.keySet().toArray(presencesArray);
51 return presencesArray;
52 }
53 }
54
55 public boolean has(String presence) {
56 synchronized (this.presences) {
57 return presences.containsKey(presence);
58 }
59 }
60}