source: 3thparty/jmessenger/src/nu/fw/jeti/jabber/elements/IQBrowse.java @ 3952

Revision 3952, 2.4 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1710 - Adicao do codigo fonte java do componente jmessenger(jabberit_messenger)

  • Property svn:executable set to *
Line 
1package nu.fw.jeti.jabber.elements;
2
3import java.util.Collections;
4import java.util.Iterator;
5import java.util.List;
6
7import nu.fw.jeti.jabber.Backend;
8import nu.fw.jeti.jabber.JID;
9/**
10 * @author E.S. de Boer
11 * @version 1.0
12 */
13
14public class IQBrowse extends Extension implements IQExtension, DiscoveryItem, DiscoveryInfo
15{
16        private List namespaces;
17        private String name;
18        private String type;
19        private String category;
20        private String version;
21        private JID jid;
22        private List childItems;
23
24        public IQBrowse()
25        {
26        }
27
28        public IQBrowse(JID jid)
29        {
30                this.jid = jid;
31        }
32
33
34        public IQBrowse(IQBrowseBuilder ib)
35        {
36                name = ib.getName();
37                jid = ib.getJID();
38                category = ib.getCategory();
39                type = ib.getType();
40                version = ib.getVersion();
41                namespaces = ib.getNamespaces();
42                childItems = ib.getItems();
43        }
44
45
46        public String getName(){return name;}
47
48        public String getType(){return type;}
49
50        public String getCategory(){return category;}
51
52        public JID getJID(){return jid;}
53
54        public Iterator getItems()
55        {
56                if(childItems == null) return null;
57                return childItems.iterator();
58        }
59               
60        public int getSize()
61        {
62                if(childItems == null) return 0;
63                return childItems.size();
64        }
65
66        public boolean hasItems(){return childItems != null;}
67
68        public List getFeatures()
69        {
70                return Collections.unmodifiableList(namespaces);
71        }
72       
73//      public StringArray getNamespaces()
74//      {
75//              return namespaces;
76//      }
77
78        public boolean hasFeatures(){return namespaces != null;}
79
80        public void appendToXMLNoIQ(StringBuffer xml)
81        {
82                xml.append("<item");
83                toXML(xml);
84        }
85       
86        public void execute(InfoQuery iq,Backend backend)
87        {
88               
89        }
90
91        public void appendToXML(StringBuffer xml)
92        {
93                xml.append("<item xmlns='jabber:iq:browse'");
94                toXML(xml);
95        }
96
97        private void toXML(StringBuffer xml)
98        {
99                appendAttribute(xml,"jid",jid);
100                appendAttribute(xml,"category",category);
101                appendAttribute(xml,"type",type);
102                appendAttribute(xml,"name",name);
103                appendAttribute(xml,"version",version);
104                if(namespaces == null && childItems == null)
105                { //short cut
106                        xml.append("/>");
107                        return;
108                }
109                xml.append('>');
110                if(namespaces !=null)
111                {
112                        for(Iterator i = namespaces.iterator();i.hasNext();)
113                        {
114                                appendElement(xml,"ns",i.next());
115                        }
116                }
117                if(childItems != null)
118                {
119                          for(Iterator i = childItems.iterator();i.hasNext();)
120                          {
121                                  ((IQBrowse)i.next()).appendToXMLNoIQ(xml);
122                          }
123                }
124                xml.append("</item>");
125        }
126}
127/*
128 * Overrides for emacs
129 * Local variables:
130 * tab-width: 4
131 * End:
132 */
Note: See TracBrowser for help on using the repository browser.