1
2
3
4
5
6
7 package org.mule.transport.xmpp.filters;
8
9 import org.mule.util.ClassUtils;
10
11 import org.jivesoftware.smack.filter.PacketFilter;
12
13
14
15
16 public class XmppPacketTypeFilter extends AbstractXmppFilter
17 {
18 private volatile Class<?> expectedType;
19
20 public XmppPacketTypeFilter()
21 {
22 super();
23 }
24
25 public XmppPacketTypeFilter(Class<?> expectedType)
26 {
27 setExpectedType(expectedType);
28 }
29
30 public Class<?> getExpectedType()
31 {
32 return expectedType;
33 }
34
35 public void setExpectedType(Class<?> expectedType)
36 {
37 this.expectedType = expectedType;
38 }
39
40 @Override
41 protected PacketFilter createFilter()
42 {
43 return new org.jivesoftware.smack.filter.PacketTypeFilter(expectedType);
44 }
45
46 @Override
47 public boolean equals(Object obj)
48 {
49 if (this == obj) return true;
50 if (obj == null || getClass() != obj.getClass()) return false;
51
52 XmppPacketTypeFilter other = (XmppPacketTypeFilter) obj;
53 return ClassUtils.equal(expectedType, other.expectedType);
54 }
55
56 @Override
57 public int hashCode()
58 {
59 return ClassUtils.hash(new Object[]{this.getClass(), expectedType});
60 }
61 }