mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2025-09-09 10:19:41 +02:00
Add FlexiblePacketTypeFilter
and make constructors of MessageTypeFilter and IQTypeFilter private, because we now provide constants instead.
This commit is contained in:
parent
c606530e22
commit
2a091debc1
18 changed files with 114 additions and 73 deletions
|
@ -22,7 +22,6 @@ import org.jivesoftware.smack.filter.AndFilter;
|
|||
import org.jivesoftware.smack.filter.IQTypeFilter;
|
||||
import org.jivesoftware.smack.filter.PacketFilter;
|
||||
import org.jivesoftware.smack.filter.PacketTypeFilter;
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
import org.jivesoftware.smack.packet.Packet;
|
||||
import org.jivesoftware.smackx.bytestreams.ibb.packet.Close;
|
||||
|
||||
|
@ -42,7 +41,7 @@ class CloseListener implements PacketListener {
|
|||
|
||||
/* packet filter for all In-Band Bytestream close requests */
|
||||
private final PacketFilter closeFilter = new AndFilter(new PacketTypeFilter(
|
||||
Close.class), new IQTypeFilter(IQ.Type.SET));
|
||||
Close.class), IQTypeFilter.SET);
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
|
|
|
@ -27,7 +27,6 @@ import org.jivesoftware.smack.filter.AndFilter;
|
|||
import org.jivesoftware.smack.filter.IQTypeFilter;
|
||||
import org.jivesoftware.smack.filter.PacketFilter;
|
||||
import org.jivesoftware.smack.filter.PacketTypeFilter;
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
import org.jivesoftware.smack.packet.Packet;
|
||||
import org.jivesoftware.smackx.bytestreams.BytestreamListener;
|
||||
import org.jivesoftware.smackx.bytestreams.ibb.packet.Open;
|
||||
|
@ -53,7 +52,7 @@ class InitiationListener implements PacketListener {
|
|||
|
||||
/* packet filter for all In-Band Bytestream requests */
|
||||
private final PacketFilter initFilter = new AndFilter(new PacketTypeFilter(Open.class),
|
||||
new IQTypeFilter(IQ.Type.SET));
|
||||
IQTypeFilter.SET);
|
||||
|
||||
/* executor service to process incoming requests concurrently */
|
||||
private final ExecutorService initiationListenerExecutor;
|
||||
|
|
|
@ -27,7 +27,6 @@ import org.jivesoftware.smack.filter.AndFilter;
|
|||
import org.jivesoftware.smack.filter.IQTypeFilter;
|
||||
import org.jivesoftware.smack.filter.PacketFilter;
|
||||
import org.jivesoftware.smack.filter.PacketTypeFilter;
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
import org.jivesoftware.smack.packet.Packet;
|
||||
import org.jivesoftware.smackx.bytestreams.BytestreamListener;
|
||||
import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream;
|
||||
|
@ -48,7 +47,7 @@ final class InitiationListener implements PacketListener {
|
|||
|
||||
/* packet filter for all SOCKS5 Bytestream requests */
|
||||
private final PacketFilter initFilter = new AndFilter(new PacketTypeFilter(Bytestream.class),
|
||||
new IQTypeFilter(IQ.Type.SET));
|
||||
IQTypeFilter.SET);
|
||||
|
||||
/* executor service to process incoming requests concurrently */
|
||||
private final ExecutorService initiationListenerExecutor;
|
||||
|
|
|
@ -89,7 +89,7 @@ public class FileTransferManager {
|
|||
fireNewRequest((StreamInitiation) packet);
|
||||
}
|
||||
}, new AndFilter(new PacketTypeFilter(StreamInitiation.class),
|
||||
new IQTypeFilter(IQ.Type.SET)));
|
||||
IQTypeFilter.SET));
|
||||
}
|
||||
|
||||
protected void fireNewRequest(StreamInitiation initiation) {
|
||||
|
|
|
@ -89,8 +89,8 @@ import org.jivesoftware.smackx.iqlast.packet.LastActivity;
|
|||
|
||||
public class LastActivityManager extends Manager {
|
||||
private static final Map<XMPPConnection, LastActivityManager> instances = new WeakHashMap<XMPPConnection, LastActivityManager>();
|
||||
private static final PacketFilter IQ_GET_LAST_FILTER = new AndFilter(new IQTypeFilter(
|
||||
IQ.Type.GET), new PacketTypeFilter(LastActivity.class));
|
||||
private static final PacketFilter IQ_GET_LAST_FILTER = new AndFilter(IQTypeFilter.GET,
|
||||
new PacketTypeFilter(LastActivity.class));
|
||||
|
||||
private static boolean enabledPerDefault = true;
|
||||
|
||||
|
|
|
@ -27,8 +27,8 @@ import org.jivesoftware.smack.Manager;
|
|||
import org.jivesoftware.smack.PacketListener;
|
||||
import org.jivesoftware.smack.filter.AndFilter;
|
||||
import org.jivesoftware.smack.filter.IQTypeFilter;
|
||||
import org.jivesoftware.smack.filter.PacketFilter;
|
||||
import org.jivesoftware.smack.filter.PacketTypeFilter;
|
||||
import org.jivesoftware.smack.packet.IQ.Type;
|
||||
import org.jivesoftware.smack.packet.Packet;
|
||||
import org.jivesoftware.smackx.disco.ServiceDiscoveryManager;
|
||||
import org.jivesoftware.smackx.iqversion.packet.Version;
|
||||
|
@ -53,6 +53,8 @@ public class VersionManager extends Manager {
|
|||
private static final Map<XMPPConnection, VersionManager> instances =
|
||||
Collections.synchronizedMap(new WeakHashMap<XMPPConnection, VersionManager>());
|
||||
|
||||
private static final PacketFilter PACKET_FILTER = new AndFilter(new PacketTypeFilter(Version.class), IQTypeFilter.GET);
|
||||
|
||||
private Version own_version;
|
||||
|
||||
private VersionManager(final XMPPConnection connection) {
|
||||
|
@ -77,7 +79,7 @@ public class VersionManager extends Manager {
|
|||
connection().sendPacket(reply);
|
||||
}
|
||||
}
|
||||
, new AndFilter(new PacketTypeFilter(Version.class), new IQTypeFilter(Type.GET)));
|
||||
, PACKET_FILTER);
|
||||
}
|
||||
|
||||
public static synchronized VersionManager getInstanceFor(XMPPConnection connection) {
|
||||
|
|
|
@ -1947,18 +1947,8 @@ public class MultiUserChat {
|
|||
|
||||
private void init() {
|
||||
// Create filters
|
||||
messageFilter =
|
||||
new AndFilter(
|
||||
FromMatchesFilter.create(room),
|
||||
new MessageTypeFilter(Message.Type.groupchat));
|
||||
messageFilter = new AndFilter(messageFilter, new PacketFilter() {
|
||||
public boolean accept(Packet packet) {
|
||||
Message msg = (Message) packet;
|
||||
return msg.getBody() != null;
|
||||
}
|
||||
});
|
||||
presenceFilter =
|
||||
new AndFilter(FromMatchesFilter.create(room), new PacketTypeFilter(Presence.class));
|
||||
messageFilter = new AndFilter(FromMatchesFilter.create(room), MessageTypeFilter.GROUPCHAT);
|
||||
presenceFilter = new AndFilter(FromMatchesFilter.create(room), PacketTypeFilter.PRESENCE);
|
||||
|
||||
// Create a collector for incoming messages.
|
||||
messageCollector = new ConnectionDetachedPacketCollector();
|
||||
|
|
|
@ -35,8 +35,6 @@ import org.jivesoftware.smack.packet.Presence;
|
|||
*/
|
||||
class PacketMultiplexListener implements PacketListener {
|
||||
|
||||
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() {
|
||||
public boolean accept(Packet packet) {
|
||||
|
@ -79,7 +77,7 @@ class PacketMultiplexListener implements PacketListener {
|
|||
if (PRESENCE_FILTER.accept(p)) {
|
||||
presenceListener.processPacket(p);
|
||||
}
|
||||
else if (MESSAGE_FILTER.accept(p)) {
|
||||
else if (MessageTypeFilter.GROUPCHAT.accept(p)) {
|
||||
messageCollector.processPacket(p);
|
||||
|
||||
if (SUBJECT_FILTER.accept(p)) {
|
||||
|
|
|
@ -45,7 +45,6 @@ import org.jivesoftware.smack.filter.IQTypeFilter;
|
|||
import org.jivesoftware.smack.filter.PacketFilter;
|
||||
import org.jivesoftware.smack.filter.PacketTypeFilter;
|
||||
import org.jivesoftware.smack.packet.Packet;
|
||||
import org.jivesoftware.smack.packet.IQ.Type;
|
||||
import org.jivesoftware.smackx.disco.ServiceDiscoveryManager;
|
||||
import org.jivesoftware.smackx.ping.packet.Ping;
|
||||
import org.jivesoftware.smackx.ping.packet.Pong;
|
||||
|
@ -68,9 +67,9 @@ public class PingManager extends Manager {
|
|||
.synchronizedMap(new WeakHashMap<XMPPConnection, PingManager>());
|
||||
|
||||
private static final PacketFilter PING_PACKET_FILTER = new AndFilter(
|
||||
new PacketTypeFilter(Ping.class), new IQTypeFilter(Type.GET));
|
||||
new PacketTypeFilter(Ping.class), IQTypeFilter.GET);
|
||||
private static final PacketFilter PONG_PACKET_FILTER = new AndFilter(new PacketTypeFilter(
|
||||
Pong.class), new IQTypeFilter(Type.RESULT));
|
||||
Pong.class), IQTypeFilter.RESULT);
|
||||
|
||||
static {
|
||||
XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() {
|
||||
|
|
|
@ -58,8 +58,8 @@ import org.jivesoftware.smackx.privacy.packet.PrivacyItem;
|
|||
public class PrivacyListManager extends Manager {
|
||||
public static final String NAMESPACE = "jabber:iq:privacy";
|
||||
|
||||
private static final PacketFilter PACKET_FILTER = new AndFilter(new IQTypeFilter(IQ.Type.SET),
|
||||
new PacketExtensionFilter("query", "jabber:iq:privacy"));
|
||||
private static final PacketFilter PACKET_FILTER = new AndFilter(IQTypeFilter.SET,
|
||||
new PacketExtensionFilter("query", NAMESPACE));
|
||||
|
||||
// Keep the list of instances of this class.
|
||||
private static final Map<XMPPConnection, PrivacyListManager> instances = Collections
|
||||
|
|
|
@ -31,7 +31,6 @@ import org.jivesoftware.smack.filter.AndFilter;
|
|||
import org.jivesoftware.smack.filter.IQTypeFilter;
|
||||
import org.jivesoftware.smack.filter.PacketFilter;
|
||||
import org.jivesoftware.smack.filter.PacketTypeFilter;
|
||||
import org.jivesoftware.smack.packet.IQ.Type;
|
||||
import org.jivesoftware.smack.packet.Packet;
|
||||
import org.jivesoftware.smackx.disco.ServiceDiscoveryManager;
|
||||
import org.jivesoftware.smackx.time.packet.Time;
|
||||
|
@ -41,7 +40,7 @@ public class EntityTimeManager extends Manager {
|
|||
private static final Map<XMPPConnection, EntityTimeManager> INSTANCES = new WeakHashMap<XMPPConnection, EntityTimeManager>();
|
||||
|
||||
private static final PacketFilter TIME_PACKET_FILTER = new AndFilter(new PacketTypeFilter(
|
||||
Time.class), new IQTypeFilter(Type.GET));
|
||||
Time.class), IQTypeFilter.GET);
|
||||
|
||||
private static boolean autoEnable = true;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue