1 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 30 public class OutboundPassThroughRouter extends FilteringOutboundRouter 31 { 32 public OutboundPassThroughRouter() 33 { 34 super(); 35 } 36 37 public OutboundPassThroughRouter(UMOImmutableDescriptor descriptor) 38 { 39 super(); 40 if (descriptor != null && descriptor.getOutboundEndpoint() != null) 41 { 42 addEndpoint(descriptor.getOutboundEndpoint()); 43 } 44 } 45 46 public void addEndpoint(UMOEndpoint endpoint) 47 { 48 if (endpoint == null) 49 { 50 return; 51 } 52 if (endpoints.size() == 1) 53 { 54 throw new IllegalArgumentException ("Only one endpoint can be set on the PassThrough router"); 55 } 56 super.addEndpoint(endpoint); 57 } 58 59 public void setEndpoints(List endpoints) 60 { 61 if (endpoints.size() > 1) 62 { 63 throw new IllegalArgumentException ("Only one endpoint can be set on the PassThrough router"); 64 } 65 super.setEndpoints(endpoints); 66 } 67 68 public void setFilter(UMOFilter filter) 69 { 70 throw new UnsupportedOperationException ( 71 "The Pass Through cannot use filters, use the FilteringOutboundRouter instead"); 72 } 73 74 public UMOMessage route(UMOMessage message, UMOSession session, boolean synchronous) 75 throws RoutingException 76 { 77 if (endpoints == null || endpoints.size() == 0) 78 { 79 return message; 80 } 81 return super.route(message, session, synchronous); 82 } 83 } 84 | Popular Tags |