1 /* 2 * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com 3 * The software in this package is published under the terms of the CPAL v1.0 4 * license, a copy of which has been included with this distribution in the 5 * LICENSE.txt file. 6 */ 7 package org.mule.api.processor; 8 9 import org.mule.api.MuleException; 10 11 /** 12 * A {@link MessageProcessor} that routes messages to zero or more destination 13 * message processors. Implementations determine exactly how this is done by making 14 * decisions about which route(s) should be used and if the message should be copied 15 * or not. 16 */ 17 public interface MessageRouter extends MessageProcessor 18 { 19 /** 20 * Adds a new message processor to the list of routes 21 * 22 * @param processor new destination message processor 23 * @throws MuleException 24 */ 25 void addRoute(MessageProcessor processor) throws MuleException; 26 27 /** 28 * Removes a message processor from the list of routes 29 * 30 * @param processor destination message processor to remove 31 */ 32 void removeRoute(MessageProcessor processor) throws MuleException; 33 34 }