View Javadoc

1   /*
2    * $Id: FlowConstruct.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.construct;
12  
13  import org.mule.api.exception.MessagingExceptionHandler;
14  import org.mule.api.lifecycle.LifecycleStateEnabled;
15  import org.mule.api.processor.MessageProcessorChain;
16  import org.mule.api.routing.MessageInfoMapping;
17  import org.mule.management.stats.FlowConstructStatistics;
18  
19  /**
20   * <p>
21   * A uniquely identified message flow construct who's implementation and
22   * configuration defines at a minimum where messages come from and what processing
23   * steps should be used to process these messages.
24   * <p/>
25   */
26  public interface FlowConstruct extends LifecycleStateEnabled
27  {
28  
29      /**
30       * @return The name which identifies this flow construct which is unique in
31       *         MuleConext registry
32       */
33      String getName();
34  
35      /**
36       * @return The exception listener that will be used to handle exceptions that may
37       *         be thrown at different points during the message flow defined by this
38       *         construct.
39       */
40      MessagingExceptionHandler getExceptionListener();
41  
42      /**
43       * @return The statistics holder used by this flow construct to keep track of its
44       *         activity.
45       */
46      FlowConstructStatistics getStatistics();
47  
48      /**
49       * @return This implementation of {@link MessageInfoMapping} used to control how
50       *         Important message information is pulled from the current message.
51       */
52      MessageInfoMapping getMessageInfoMapping();
53  
54      MessageProcessorChain getMessageProcessorChain();
55  }