曹妃甸核酸检测平台.apk(点击下载) / PacketMultiplexListener.java


package asmack.org.jivesoftware.smackx.muc;

import asmack.org.jivesoftware.smack.PacketListener;
import asmack.org.jivesoftware.smack.filter.MessageTypeFilter;
import asmack.org.jivesoftware.smack.filter.PacketExtensionFilter;
import asmack.org.jivesoftware.smack.filter.PacketFilter;
import asmack.org.jivesoftware.smack.filter.PacketTypeFilter;
import asmack.org.jivesoftware.smack.packet.Message;
import asmack.org.jivesoftware.smack.packet.Packet;
import asmack.org.jivesoftware.smack.packet.Presence;
import asmack.org.jivesoftware.smackx.GroupChatInvitation;

class PacketMultiplexListener implements PacketListener {
    private static final PacketFilter DECLINES_FILTER = new PacketExtensionFilter(GroupChatInvitation.ELEMENT_NAME, "http://jabber.org/protocol/muc#user");
    private static final PacketFilter MESSAGE_FILTER = new MessageTypeFilter(Message.Type.groupchat);
    private static final PacketFilter PRESENCE_FILTER = new PacketTypeFilter(Presence.class);
    private static final PacketFilter SUBJECT_FILTER = new PacketFilter() {
        /* class asmack.org.jivesoftware.smackx.muc.PacketMultiplexListener.AnonymousClass1 */

        @Override // asmack.org.jivesoftware.smack.filter.PacketFilter
        public boolean accept(Packet packet) {
            return ((Message) packet).getSubject() != null;
        }
    };
    private PacketListener declinesListener;
    private ConnectionDetachedPacketCollector messageCollector;
    private PacketListener presenceListener;
    private PacketListener subjectListener;

    public PacketMultiplexListener(ConnectionDetachedPacketCollector connectionDetachedPacketCollector, PacketListener packetListener, PacketListener packetListener2, PacketListener packetListener3) {
        if (connectionDetachedPacketCollector == null) {
            throw new IllegalArgumentException("MessageCollector is null");
        } else if (packetListener == null) {
            throw new IllegalArgumentException("Presence listener is null");
        } else if (packetListener2 == null) {
            throw new IllegalArgumentException("Subject listener is null");
        } else if (packetListener3 != null) {
            this.messageCollector = connectionDetachedPacketCollector;
            this.presenceListener = packetListener;
            this.subjectListener = packetListener2;
            this.declinesListener = packetListener3;
        } else {
            throw new IllegalArgumentException("Declines listener is null");
        }
    }

    @Override // asmack.org.jivesoftware.smack.PacketListener
    public void processPacket(Packet packet) {
        PacketListener packetListener;
        if (PRESENCE_FILTER.accept(packet)) {
            packetListener = this.presenceListener;
        } else if (MESSAGE_FILTER.accept(packet)) {
            this.messageCollector.processPacket(packet);
            if (SUBJECT_FILTER.accept(packet)) {
                packetListener = this.subjectListener;
            } else {
                return;
            }
        } else if (DECLINES_FILTER.accept(packet)) {
            packetListener = this.declinesListener;
        } else {
            return;
        }
        packetListener.processPacket(packet);
    }
}