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