/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.runtime.core.api.construct; import org.mule.runtime.api.meta.NamedObject; import org.mule.runtime.core.api.MuleContext; import org.mule.runtime.core.api.exception.MessagingExceptionHandler; import org.mule.runtime.core.api.lifecycle.LifecycleStateEnabled; import org.mule.runtime.core.api.processor.Processor; import org.mule.runtime.core.api.source.MessageSource; import org.mule.runtime.core.management.stats.FlowConstructStatistics; /** * A uniquely identified {@link FlowConstruct} that once implemented and configured defines a construct through which messages are * processed using {@link MessageSource} and {@link Processor} building blocks. */ public interface FlowConstruct extends NamedObject, LifecycleStateEnabled { /** * @return The exception listener that will be used to handle exceptions that may be thrown at different points during the * message flow defined by this construct. */ MessagingExceptionHandler getExceptionListener(); /** * @return The statistics holder used by this flow construct to keep track of its activity. */ FlowConstructStatistics getStatistics(); /** * @return This muleContext that this flow construct belongs to and runs in the context of. */ MuleContext getMuleContext(); /** * Generate a unique ID string */ String getUniqueIdString(); /** * @return the id of the running mule server */ String getServerId(); }