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