1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.email.filters;
12
13 import org.mule.routing.filters.RegExFilter;
14 import org.mule.util.ClassUtils;
15
16 import javax.mail.Message;
17 import javax.mail.MessagingException;
18
19
20
21
22
23 public class MailSubjectRegExFilter extends AbstractMailFilter
24 {
25 private RegExFilter filter = new RegExFilter();
26
27 public boolean accept(Message message)
28 {
29 try
30 {
31 return filter.accept(message.getSubject());
32 }
33 catch (MessagingException e)
34 {
35 logger.warn("Failed to read message subject: " + e.getMessage(), e);
36 return false;
37 }
38 }
39
40 public void setExpression(String pattern)
41 {
42 filter.setPattern(pattern);
43 }
44
45 public String getExpression()
46 {
47 return filter.getPattern();
48 }
49
50 public boolean equals(Object obj)
51 {
52 if (this == obj) return true;
53 if (obj == null || getClass() != obj.getClass()) return false;
54
55 final MailSubjectRegExFilter other = (MailSubjectRegExFilter) obj;
56 return ClassUtils.equal(filter, other.filter);
57 }
58
59 public int hashCode()
60 {
61 return ClassUtils.hash(new Object[]{this.getClass(), filter});
62 }
63 }