1 /* 2 * $Id: MessageRouter.java 20320 2010-11-24 15:03:31Z dfeist $ 3 * -------------------------------------------------------------------------------------- 4 * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.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.api.processor; 12 13 import org.mule.api.MuleException; 14 15 /** 16 * A {@link MessageProcessor} that routes messages to zero or more destination 17 * message processors. Implementations determine exactly how this is done by making 18 * decisions about which route(s) should be used and if the message should be copied 19 * or not. 20 */ 21 public interface MessageRouter extends MessageProcessor 22 { 23 /** 24 * Adds a new message processor to the list of routes 25 * 26 * @param processor new destination message processor 27 * @throws MuleException 28 */ 29 void addRoute(MessageProcessor processor) throws MuleException; 30 31 /** 32 * Removes a message processor from the list of routes 33 * 34 * @param processor destination message processor to remove 35 */ 36 void removeRoute(MessageProcessor processor) throws MuleException; 37 38 }