source: 3thparty/jmessenger/src/nu/fw/jeti/backend/Handlers.java @ 3952

Revision 3952, 2.9 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.backend;
2
3import java.util.HashMap;
4import java.util.Map;
5
6import nu.fw.jeti.jabber.handlers.*;
7import nu.fw.jeti.plugins.PluginsInfo;
8
9/**
10 * @author E.S. de Boer
11 */
12
13public class Handlers
14{
15        private Map handlers;
16        private Map xmppHandlers;
17        private InfoQueryHandler iqHandler;
18        private PresenceHandler presenceHandler;
19        private MessageHandler messageHandler;
20        private StreamErrorHandler streamErrorHandler;
21
22    public Handlers()
23    {
24                handlers = new HashMap(10);
25                iqHandler = new InfoQueryHandler();
26                presenceHandler  = new PresenceHandler();
27                messageHandler = new MessageHandler();
28                streamErrorHandler = new StreamErrorHandler();
29                handlers.put("jabber:iq:auth",new IQAuthHandler());
30                handlers.put("jabber:iq:roster",new RosterHandler());
31                handlers.put("jabber:iq:time",new IQTimeHandler());
32                handlers.put("jabber:iq:version",new IQVersionHandler());
33                handlers.put("jabber:iq:register",new IQRegisterHandler());
34                handlers.put("j2m:prefs",new JetiPrivateHandler());
35                handlers.put("jeti:rosterprefs",new JetiPrivateRosterHandler());
36                handlers.put("jabber:iq:private",new IQPrivateHandler());
37                handlers.put("jabber:x:event",new XMessageEventHandler());
38                handlers.put("jabber:x:delay",new XDelayHandler());
39                handlers.put("jabber:iq:browse",new IQBrowseHandler());
40                handlers.put("jabber:iq:last",new IQLastHandler());
41                handlers.put("jabber:iq:oob",new IQXOOBHandler());
42                handlers.put("jabber:x:data",new XDataHandler());
43                handlers.put("http://jabber.org/protocol/disco#info",new IQDiscoInfoHandler());
44                handlers.put("http://jabber.org/protocol/disco#items",new IQDiscoItemsHandler());
45                handlers.put("http://jabber.org/protocol/caps",new IQXCapsHandler());
46                handlers.put("urn:ietf:params:xml:ns:xmpp-stanzas",new XMPPErrorHandler());
47                handlers.put("urn:ietf:params:xml:ns:xmpp-streams",new XMPPErrorHandler());
48                handlers.put("unknown",new UnknownExtensionHandler());
49    }
50   
51    public void loadExtraHandlers(Map extraHandlers)
52    {
53        if(PluginsInfo.isPluginLoaded("xmpp"))xmppHandlers = extraHandlers;
54    }
55
56        public PacketHandler getPacketHandler(String namespace)
57        {//iq message & presence
58                if ("iq".equals(namespace)) return iqHandler;
59                else if ("presence".equals(namespace)) return presenceHandler;
60                else if("message".equals(namespace)) return messageHandler;
61                else if ("stream:error".equals(namespace)) return streamErrorHandler;
62                else if(xmppHandlers!=null)
63                {
64                        return (PacketHandler)xmppHandlers.get(namespace);
65                }
66                else return null;
67        }
68
69        public synchronized ExtensionHandler getExtensionHandler(String namespace)
70        {
71                return (ExtensionHandler) handlers.get(namespace);
72        }
73       
74        public synchronized void addExtensionHandler(String namespace,ExtensionHandler handler)
75        {
76                handlers.put(namespace,handler);
77        }
78       
79        public synchronized void removeExtensionHandler(String namespace)
80        {
81                handlers.remove(namespace);
82        }
83}
84
85/*
86 * Overrides for emacs
87 * Local variables:
88 * tab-width: 4
89 * End:
90 */
Note: See TracBrowser for help on using the repository browser.