public StanzaHandler getHandler()

in server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaHandlerLookup.java [67:99]


    public StanzaHandler getHandler(Stanza stanza) {
        if (stanza == null)
            return null;

        // allow extensions to override default handling
        StanzaHandler stanzaHandler = getHandlerForElement(stanza, stanza);
        
        if(stanzaHandler != null) {
            return stanzaHandler;
        } else {
            String name = stanza.getName();
    
            if ("xml".equals(name)) {
                return new XMLPrologHandler();
            } else if ("stream".equals(name)) {
                return new StreamStartHandler();
            } else if ("verify".equals(name)) {
                return new DbVerifyHandler();
            } else if ("result".equals(name)) {
                return new DbResultHandler();
            } else if (iqHandler.verify(stanza)) {
                return getIQHandler(stanza);
            } else if (messageHandler.verify(stanza)) {
                return getMessageHandler(stanza);
            } else if (presenceHandler.verify(stanza)) {
                return getPresenceHandler(stanza);
            } else {
                // ... and if we could not resolve and it's a core stanza, we can safely return an error
                if (XMPPCoreStanza.getWrapper(stanza) != null) return SERVICE_UNAVAILABLE_STANZA_ERROR_HANDLER;
                else return null;
            }
        }
    }