[3102] | 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 | */ |
---|