source: trunk/jabberit_messenger/java_source/src/nu/fw/jeti/jabber/elements/IQXRoster.java @ 1001

Revision 1001, 1.7 KB checked in by alexandrecorreia, 15 years ago (diff)

Ticket #552 - Inclusão do projeto Java referente ao applet do módulo.

Line 
1package nu.fw.jeti.jabber.elements;
2
3import java.util.Iterator;
4import java.util.LinkedList;
5import java.util.NoSuchElementException;
6
7import nu.fw.jeti.events.CompleteRosterListener;
8import nu.fw.jeti.jabber.Backend;
9
10
11
12/**
13 * <p>Title: im</p>
14 * <p>Description: </p>
15 * <p>Copyright: Copyright (c) 2001</p>
16 * <p>Company: </p>
17 * @author E.S. de Boer
18 * @version 1.0
19 */
20
21public class IQXRoster extends Extension implements IQExtension, XExtension
22{//iq + x roster
23        private LinkedList items;
24
25        public IQXRoster(){}//extension tag for get
26
27        public IQXRoster(RosterItem item)
28        {
29                items = new LinkedList();
30                items.add(item);
31        }
32
33    public IQXRoster(RosterBuilder rb)
34    {
35                items=rb.getItems();
36    }
37
38        public Iterator getItems()
39        {
40                if (items==null)
41                {
42                        return new Iterator()
43                        {//empty iterator
44                                public Object next()
45                                {
46                                        throw new NoSuchElementException();
47                                }
48                                public boolean hasNext()
49                                {
50                                        return false;
51                                }
52                                public void remove()
53                                {
54                                        throw new UnsupportedOperationException();
55                                }
56                        };
57                }
58                return items.iterator();
59        }
60       
61        public void execute(InfoQuery iq,Backend backend)
62        {
63                for (Iterator j = backend.getListeners(CompleteRosterListener.class); j.hasNext();)
64                {
65                        ((CompleteRosterListener) j.next()).rosterReceived(iq,this);
66                }
67        }
68
69
70        public void appendToXML(StringBuffer xml)
71    {/** @todo x */
72        xml.append("<query xmlns=\"jabber:iq:roster\"");
73                if(items ==null)
74                { //short cut
75                    xml.append("/>");
76                        return;
77                }
78                xml.append('>');
79                for(Iterator i = items.iterator();i.hasNext();)
80                {
81                    ((RosterItem)i.next()).appendToXML(xml);
82                }
83                xml.append("</query>");
84    }
85}
86
87
88/*
89 * Overrides for emacs
90 * Local variables:
91 * tab-width: 4
92 * End:
93 */
Note: See TracBrowser for help on using the repository browser.