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