1
2
3
4
5
6
7 package org.mule.routing.filters;
8
9 import org.mule.api.ExceptionPayload;
10 import org.mule.api.MuleMessage;
11 import org.mule.util.ClassUtils;
12
13
14
15
16
17
18 public class ExceptionTypeFilter extends PayloadTypeFilter
19 {
20
21 public ExceptionTypeFilter()
22 {
23 super();
24 }
25
26
27 public ExceptionTypeFilter(String expectedType) throws ClassNotFoundException
28 {
29 this(ClassUtils.loadClass(expectedType, ExceptionTypeFilter.class));
30 }
31
32 public ExceptionTypeFilter(Class expectedType)
33 {
34 super(expectedType);
35 }
36
37
38
39
40
41
42
43 public boolean accept(MuleMessage message)
44 {
45 ExceptionPayload epl = message.getExceptionPayload();
46
47 if (getExpectedType() == null)
48 {
49 return epl != null;
50 }
51 else if (epl != null)
52 {
53 return getExpectedType().isAssignableFrom(epl.getException().getClass());
54 }
55 else
56 {
57 return false;
58 }
59 }
60
61 }