source: branches/2.2/jabberit_messenger/java_source/src/nu/fw/jeti/jabber/handlers/IQBrowseHandler.java @ 3102

Revision 3102, 2.2 KB checked in by amuller, 14 years ago (diff)

Ticket #986 - Efetuado merge para o Branch 2.2( atualizacao do modulo)

  • Property svn:executable set to *
Line 
1package nu.fw.jeti.jabber.handlers;
2
3import nu.fw.jeti.jabber.JID;
4import nu.fw.jeti.jabber.elements.Extension;
5import nu.fw.jeti.jabber.elements.IQBrowseBuilder;
6
7import org.xml.sax.Attributes;
8
9/**
10 * <p>Title: im</p>
11 * <p>Description: </p>
12 * <p>Copyright: Copyright (c) 2001</p>
13 * <p>Company: </p>
14 * @author E.S. de Boer
15 * @version 1.0
16 */
17
18public class IQBrowseHandler extends ExtensionHandler
19{
20        private IQBrowseBuilder iqBuilder;
21        private IQBrowseBuilder itemBuilder;
22        private IQBrowseBuilder currentBuilder;
23
24        public IQBrowseHandler()
25        {
26                iqBuilder = new IQBrowseBuilder();
27                itemBuilder = new IQBrowseBuilder();
28                currentBuilder = iqBuilder;
29        }
30
31        public void startHandling(Attributes attr)
32        {
33                iqBuilder.reset();
34                if(getName().equals("item")) parseStartElement(attr.getValue("category"),attr);
35                //backwards compatible:
36                //else if(getName().equals("service")) parseStartElement(attr.getValue("service"),attr);
37                //else if(getName().equals("conference")) parseStartElement(attr.getValue("conference"),attr);
38                //else if(getName().equals("user")) parseStartElement(attr.getValue("user"),attr);
39                else parseStartElement(getName(),attr);
40        }
41
42        private void parseStartElement(String category, Attributes attr)
43        {
44                String jid = attr.getValue("jid");
45                if(jid != null) currentBuilder.setJID(JID.jidFromString(jid));
46                currentBuilder.setCategory(category);
47                currentBuilder.setType(attr.getValue("type"));
48                currentBuilder.setName(attr.getValue("name"));
49                currentBuilder.setVersion(attr.getValue("version"));
50        }
51
52        public void startElement(String name,Attributes attr)
53        {
54                if (name.equals("ns")) return;
55                currentBuilder = itemBuilder;
56                itemBuilder.reset();
57                if(name.equals("item")) parseStartElement(attr.getValue("category"),attr);
58                else parseStartElement(name,attr);
59        }
60
61        public void endElement(String name)
62        {
63                if(name.equals("ns")) currentBuilder.addNamespace(getText());
64                else
65                {
66                        iqBuilder.addItem(itemBuilder.build());
67                        currentBuilder = iqBuilder;
68                }
69                //else util.Log.notParsedXML("IQBrowse " + name + getText());
70                clearCurrentChars();
71        }
72
73        public Extension build()
74        {
75        Extension e = null;
76        e = iqBuilder.build();
77        iqBuilder.reset();
78                return e;
79        }
80}
81
82/*
83 * Overrides for emacs
84 * Local variables:
85 * tab-width: 4
86 * End:
87 */
Note: See TracBrowser for help on using the repository browser.