View Javadoc
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  }