1
2
3
4
5
6
7
8
9
10
11 package org.mule.routing.outbound;
12
13 import org.mule.umo.UMOFilter;
14 import org.mule.umo.UMOImmutableDescriptor;
15 import org.mule.umo.UMOMessage;
16 import org.mule.umo.UMOSession;
17 import org.mule.umo.endpoint.UMOEndpoint;
18 import org.mule.umo.routing.RoutingException;
19
20 import java.util.List;
21
22
23
24
25
26
27
28 public class OutboundPassThroughRouter extends FilteringOutboundRouter
29 {
30 public OutboundPassThroughRouter()
31 {
32 super();
33 }
34
35 public OutboundPassThroughRouter(UMOImmutableDescriptor descriptor)
36 {
37 super();
38 if (descriptor != null && descriptor.getOutboundEndpoint() != null)
39 {
40 addEndpoint(descriptor.getOutboundEndpoint());
41 }
42 }
43
44 public void addEndpoint(UMOEndpoint endpoint)
45 {
46 if (endpoint == null)
47 {
48 return;
49 }
50 if (endpoints.size() == 1)
51 {
52 throw new IllegalArgumentException("Only one endpoint can be set on the PassThrough router");
53 }
54 super.addEndpoint(endpoint);
55 }
56
57 public void setEndpoints(List endpoints)
58 {
59 if (endpoints.size() > 1)
60 {
61 throw new IllegalArgumentException("Only one endpoint can be set on the PassThrough router");
62 }
63 super.setEndpoints(endpoints);
64 }
65
66 public void setFilter(UMOFilter filter)
67 {
68 throw new UnsupportedOperationException(
69 "The Pass Through cannot use filters, use the FilteringOutboundRouter instead");
70 }
71
72 public UMOMessage route(UMOMessage message, UMOSession session, boolean synchronous)
73 throws RoutingException
74 {
75 if (endpoints == null || endpoints.size() == 0)
76 {
77 return message;
78 }
79 return super.route(message, session, synchronous);
80 }
81 }