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 }