1
2
3
4
5
6
7
8
9
10
11 package org.mule.routing;
12
13 import org.mule.api.MuleEvent;
14 import org.mule.api.MuleException;
15 import org.mule.api.processor.InterceptingMessageProcessor;
16 import org.mule.api.processor.MessageProcessor;
17 import org.mule.api.routing.filter.Filter;
18 import org.mule.api.routing.filter.FilterUnacceptedException;
19 import org.mule.config.i18n.CoreMessages;
20 import org.mule.processor.AbstractFilteringMessageProcessor;
21
22
23
24
25
26
27
28
29
30 public class MessageFilter extends AbstractFilteringMessageProcessor
31 {
32 protected Filter filter;
33
34
35
36
37
38 public MessageFilter()
39 {
40
41 }
42
43 public MessageFilter(Filter filter)
44 {
45 this.filter = filter;
46 }
47
48
49
50
51
52
53 public MessageFilter(Filter filter, boolean throwExceptionOnUnaccepted, MessageProcessor messageProcessor)
54 {
55 this.filter = filter;
56 this.throwOnUnaccepted = throwExceptionOnUnaccepted;
57 this.unacceptedMessageProcessor = messageProcessor;
58 }
59
60 @Override
61 protected boolean accept(MuleEvent event)
62 {
63 if (filter == null)
64 {
65 return true;
66 }
67
68 if (event != null)
69 {
70 return filter.accept(event.getMessage());
71 }
72 else
73 {
74 return false;
75 }
76 }
77
78 @Override
79 protected MuleException filterUnacceptedException(MuleEvent event)
80 {
81 return new FilterUnacceptedException(CoreMessages.messageRejectedByFilter(), event, filter);
82 }
83
84 public Filter getFilter()
85 {
86 return filter;
87 }
88
89 public void setFilter(Filter filter)
90 {
91 this.filter = filter;
92 }
93
94 @Override
95 public String toString()
96 {
97 return (filter == null ? "null filter" : filter.getClass().getName()) + " (wrapped by " + this.getClass().getSimpleName() + ")";
98 }
99 }