1 | package nu.fw.jeti.backend.roster; |
---|
2 | |
---|
3 | import java.util.ArrayList; |
---|
4 | import java.util.Collections; |
---|
5 | import java.util.List; |
---|
6 | |
---|
7 | /** |
---|
8 | * Title: im |
---|
9 | * Description: |
---|
10 | * Copyright: Copyright (c) 2001 |
---|
11 | * Company: |
---|
12 | * @author E.S. de Boer |
---|
13 | * @version 1.0 |
---|
14 | */ |
---|
15 | |
---|
16 | public class JIDStatusTree |
---|
17 | { |
---|
18 | //synchronized because used in event thread & jabberinput thread |
---|
19 | |
---|
20 | private List root; |
---|
21 | |
---|
22 | public JIDStatusTree() |
---|
23 | { |
---|
24 | root = new ArrayList(8); |
---|
25 | } |
---|
26 | |
---|
27 | |
---|
28 | //get group of maak als hij nog niet bestaat |
---|
29 | /** |
---|
30 | * Searches group and returns the found group |
---|
31 | * or makes a new group if group does not exist |
---|
32 | * @param group Group to get |
---|
33 | * @return JIDStatusGroup |
---|
34 | */ |
---|
35 | public synchronized JIDStatusGroup getGroup(String group) |
---|
36 | { |
---|
37 | int index = root.indexOf(new JIDStatusGroup(group)); |
---|
38 | if(index == -1) |
---|
39 | { |
---|
40 | JIDStatusGroup jidGroup = new JIDStatusGroup(group); |
---|
41 | root.add(jidGroup); |
---|
42 | Collections.sort(root); |
---|
43 | return jidGroup; |
---|
44 | } |
---|
45 | return (JIDStatusGroup)root.get(index); |
---|
46 | } |
---|
47 | |
---|
48 | |
---|
49 | public synchronized boolean existGroup(String group) |
---|
50 | { |
---|
51 | return (root.indexOf(new JIDStatusGroup(group))!=-1) ; |
---|
52 | } |
---|
53 | |
---|
54 | public synchronized void removeGroup(JIDStatusGroup jidGroup) |
---|
55 | { |
---|
56 | root.remove(jidGroup); |
---|
57 | } |
---|
58 | |
---|
59 | public synchronized String[] getGroups() |
---|
60 | { |
---|
61 | String[] groups = new String[root.size()]; |
---|
62 | for(int tel =0; tel<root.size();tel++) |
---|
63 | { |
---|
64 | groups[tel] =((JIDStatusGroup)root.get(tel)).getName(); |
---|
65 | } |
---|
66 | return groups; |
---|
67 | } |
---|
68 | |
---|
69 | public synchronized int indexOfGroup(Object group) |
---|
70 | { |
---|
71 | return root.indexOf(group); |
---|
72 | } |
---|
73 | |
---|
74 | public synchronized int getSize(){return root.size();} |
---|
75 | |
---|
76 | public synchronized Object get(int index){return root.get(index);} |
---|
77 | } |
---|
78 | /* |
---|
79 | * Overrides for emacs |
---|
80 | * Local variables: |
---|
81 | * tab-width: 4 |
---|
82 | * End: |
---|
83 | */ |
---|