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 }