1 /* 2 * $Id: Callable.java 19191 2010-08-25 21:05:23Z tcarlson $ 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.lifecycle; 12 13 import org.mule.api.MuleEventContext; 14 15 /** 16 * <code>Callable</code> is used to provide a Service with an interface that supports 17 * event calls. Components do not have to implement this interface, though the 18 * <code>onCall</code> method provides an example lifecycle method that is executed 19 * when an event is received for the implementing service. 20 */ 21 public interface Callable extends EventListener 22 { 23 24 /** 25 * Passes the event to the listener 26 * 27 * @param eventContext the context of the current event being process 28 * @return Object this object can be anything. When the 29 * <code>LifecycleAdapter</code> for the service receives this 30 * object it will first see if the Object is an <code>MuleMessage</code> 31 * if not and the Object is not null a new message will be created using 32 * the returned object as the payload. This new event will then get 33 * published via the configured outbound router if- 34 * <ol> 35 * <li>One has been configured for the component.</li> 36 * <li>the <code>setStopFurtherProcessing(true)</code> wasn't called 37 * on the event context event.</li> 38 * </ol> 39 * @throws Exception if the event fails to process properly. If exceptions aren't 40 * handled by the implementation they will be handled by the 41 * exceptionListener associated with the service 42 */ 43 Object onCall(MuleEventContext eventContext) throws Exception; 44 45 }