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