1 /* 2 * $Id: UMOInboundRouter.java 3798 2006-11-04 04:07:14Z aperepel $ 3 * -------------------------------------------------------------------------------------- 4 * Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com 5 * 6 * The software in this package is published under the terms of the MuleSource MPL 7 * license, a copy of which has been included with this distribution in the 8 * LICENSE.txt file. 9 */ 10 11 package org.mule.umo.routing; 12 13 import org.mule.umo.MessagingException; 14 import org.mule.umo.UMOEvent; 15 16 /** 17 * <code>UMOInboundRouter</code> defines an interface for an inbound Message 18 * router. An inbound router is used to control how events are received by a 19 * component. One or more of these routers can be associated with a 20 * UMOInboundMessageRouter implementation. 21 * 22 * @see UMOInboundMessageRouter 23 * @author <a HREF="mailto:ross.mason@symphonysoft.com">Ross Mason</a> 24 * @version $Revision: 3798 $ 25 */ 26 27 public interface UMOInboundRouter extends UMORouter 28 { 29 /** 30 * A received UMOEvent is passed to this method for processing. The router can 31 * control processing by either 1. passing back a null to indicate that the 32 * router has either discarded the event of the event has been stored for further 33 * processing. A reaosn for storing the event might be that other events in it's 34 * correlation group are expected to be received. 2. Pass back an array of one or 35 * more events to be processed by the component. Often 1 event is returned, i.e. 36 * in the case of event aggregation. The router may return an array of events if 37 * a set of events have been resequenced or multiple events have been generated 38 * from a single event. 39 * 40 * @param event the event received by the inbound endpoint before it is passed to 41 * the component 42 * @return null to indicate the event has been stored/destroyed or an array of 43 * events to be processed by the component 44 * @throws MessagingException if an error occurs during processing of the event 45 */ 46 UMOEvent[] process(UMOEvent event) throws MessagingException; 47 48 /** 49 * Determines if the event should be processed by this router. Routers can be 50 * selectively invoked by configuing a filter on them. Usually the filter is 51 * applied to the event when calling this method. All core Mule inbound routers 52 * extend the SelectiveConsumer router. 53 * 54 * @param event the current event to evaluate 55 * @return true if the event should be processed by this router 56 * @throws MessagingException if the event cannot be evaluated 57 * @see org.mule.routing.inbound.SelectiveConsumer 58 */ 59 boolean isMatch(UMOEvent event) throws MessagingException; 60 } 61