1 /* 2 * $Id: UMOInboundRouter.java 7976 2007-08-21 14:26:13Z dirk.olmes $ 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 CPAL v1.0 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 * UMOInboundRouterCollection implementation. 21 * 22 * @see UMOInboundRouterCollection 23 */ 24 25 public interface UMOInboundRouter extends UMORouter 26 { 27 /** 28 * A received UMOEvent is passed to this method for processing. The router can 29 * control processing by either 1. passing back a null to indicate that the 30 * router has either discarded the event of the event has been stored for further 31 * processing. A reaosn for storing the event might be that other events in it's 32 * correlation group are expected to be received. 2. Pass back an array of one or 33 * more events to be processed by the component. Often 1 event is returned, i.e. 34 * in the case of event aggregation. The router may return an array of events if 35 * a set of events have been resequenced or multiple events have been generated 36 * from a single event. 37 * 38 * @param event the event received by the inbound endpoint before it is passed to 39 * the component 40 * @return null to indicate the event has been stored/destroyed or an array of 41 * events to be processed by the component 42 * @throws MessagingException if an error occurs during processing of the event 43 */ 44 UMOEvent[] process(UMOEvent event) throws MessagingException; 45 46 /** 47 * Determines if the event should be processed by this router. Routers can be 48 * selectively invoked by configuing a filter on them. Usually the filter is 49 * applied to the event when calling this method. All core Mule inbound routers 50 * extend the SelectiveConsumer router. 51 * 52 * @param event the current event to evaluate 53 * @return true if the event should be processed by this router 54 * @throws MessagingException if the event cannot be evaluated 55 * @see org.mule.routing.inbound.SelectiveConsumer 56 */ 57 boolean isMatch(UMOEvent event) throws MessagingException; 58 }