Package hudson.plugins.jabber.im.transport

Source Code of hudson.plugins.jabber.im.transport.AbstractJabberMessageListenerAdapter

package hudson.plugins.jabber.im.transport;

import hudson.plugins.im.IMMessage;
import hudson.plugins.im.IMMessageListener;

import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.PacketExtension;
import org.jivesoftware.smackx.delay.packet.DelayInformation;

class AbstractJabberMessageListenerAdapter {

    protected final IMMessageListener listener;
    protected final JabberIMConnection connection;

    public AbstractJabberMessageListenerAdapter(IMMessageListener listener,
        JabberIMConnection connection) {
        this.listener = listener;
        this.connection = connection;
    }

    protected void processMessage(Message msg) {
        // Don't react to old messages.
      // Especially useful for chat rooms where all old messages are replayed, when you connect to them
      for (PacketExtension pe : msg.getExtensions()) {
            if (pe instanceof DelayInformation) {
                return; // simply bail out here, it's an old message
            }
      }

        IMMessage imMessage = new IMMessage(msg.getFrom(), msg.getTo(),
                msg.getBody(), this.connection.isAuthorized(msg.getFrom()));

        listener.onMessage(imMessage);
    }
}
TOP

Related Classes of hudson.plugins.jabber.im.transport.AbstractJabberMessageListenerAdapter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.