1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.xmpp.filters;
12
13 import org.mule.util.ClassUtils;
14
15 import org.jivesoftware.smack.filter.AndFilter;
16 import org.jivesoftware.smack.filter.PacketFilter;
17
18
19
20
21 public class XmppAndFilter extends AbstractXmppFilter
22 {
23 private volatile PacketFilter leftFilter;
24 private volatile PacketFilter rightFilter;
25
26 public XmppAndFilter()
27 {
28 super();
29 }
30
31 public XmppAndFilter(PacketFilter left, PacketFilter right)
32 {
33 this.leftFilter = left;
34 this.rightFilter = right;
35 }
36
37 public void setLeftFilter(PacketFilter left)
38 {
39 this.leftFilter = left;
40 }
41
42 public void setRightFilter(PacketFilter right)
43 {
44 this.leftFilter = right;
45 }
46
47 public PacketFilter getLeftFilter()
48 {
49 return leftFilter;
50 }
51
52 public PacketFilter getRightFilter()
53 {
54 return rightFilter;
55 }
56
57 @Override
58 protected PacketFilter createFilter()
59 {
60 return new AndFilter(leftFilter, rightFilter);
61 }
62
63 @Override
64 public boolean equals(Object obj)
65 {
66 if (this == obj) return true;
67 if (obj == null || getClass() != obj.getClass()) return false;
68
69 final XmppAndFilter other = (XmppAndFilter) obj;
70 return ClassUtils.equal(leftFilter, other.leftFilter)
71 && ClassUtils.equal(rightFilter, other.rightFilter);
72 }
73
74 @Override
75 public int hashCode()
76 {
77 return ClassUtils.hash(new Object[]{ this.getClass(), leftFilter, rightFilter });
78 }
79 }