Add PacketExtensionFilter(PacketExtension) constructor

and PacketExtensionFilter(Class<? extends PacketExtension).
This commit is contained in:
Florian Schmaus 2014-06-10 18:52:46 +02:00
parent b083449cc3
commit 1b2231be0b
1 changed files with 11 additions and 2 deletions

View File

@ -18,6 +18,7 @@
package org.jivesoftware.smack.filter;
import org.jivesoftware.smack.packet.Packet;
import org.jivesoftware.smack.packet.PacketExtension;
/**
* Filters for packets with a particular type of packet extension.
@ -26,8 +27,8 @@ import org.jivesoftware.smack.packet.Packet;
*/
public class PacketExtensionFilter implements PacketFilter {
private String elementName;
private String namespace;
private final String elementName;
private final String namespace;
/**
* Creates a new packet extension filter. Packets will pass the filter if
@ -52,6 +53,14 @@ public class PacketExtensionFilter implements PacketFilter {
this(null, namespace);
}
public PacketExtensionFilter(PacketExtension packetExtension) {
this(packetExtension.getElementName(), packetExtension.getNamespace());
}
public PacketExtensionFilter(Class<? extends PacketExtension> packetExtensionClass) throws InstantiationException, IllegalAccessException {
this(packetExtensionClass.newInstance());
}
public boolean accept(Packet packet) {
return packet.getExtension(elementName, namespace) != null;
}