1 /* 2 * $Id: FlowConstruct.java 22040 2011-05-30 19:19:18Z 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.MuleContext; 14 import org.mule.api.NamedObject; 15 import org.mule.api.exception.MessagingExceptionHandler; 16 import org.mule.api.lifecycle.LifecycleStateEnabled; 17 import org.mule.api.processor.MessageProcessor; 18 import org.mule.api.routing.MessageInfoMapping; 19 import org.mule.api.source.MessageSource; 20 import org.mule.management.stats.FlowConstructStatistics; 21 22 /** 23 * A uniquely identified {@link FlowConstruct} that once implemented and configured defines a construct 24 * through which messages are processed using {@link MessageSource} and {@link MessageProcessor} building 25 * blocks. 26 */ 27 public interface FlowConstruct extends NamedObject, LifecycleStateEnabled 28 { 29 30 /** 31 * @return The exception listener that will be used to handle exceptions that may be thrown at different 32 * points during the message flow defined by this construct. 33 */ 34 MessagingExceptionHandler getExceptionListener(); 35 36 /** 37 * @return The statistics holder used by this flow construct to keep track of its activity. 38 */ 39 FlowConstructStatistics getStatistics(); 40 41 /** 42 * @return This implementation of {@link MessageInfoMapping} used to control how Important message 43 * information is pulled from the current message. 44 */ 45 MessageInfoMapping getMessageInfoMapping(); 46 47 /** 48 * @return This muleContext that this flow construct belongs to and runs in the context of. 49 */ 50 MuleContext getMuleContext(); 51 52 }