1 /* 2 * $Id: Model.java 22048 2011-05-31 14:39:03Z 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.model; 12 13 import org.mule.api.NameableObject; 14 import org.mule.api.component.LifecycleAdapterFactory; 15 import org.mule.api.context.MuleContextAware; 16 import org.mule.api.exception.MessagingExceptionHandler; 17 import org.mule.api.lifecycle.Lifecycle; 18 import org.mule.api.lifecycle.LifecycleStateEnabled; 19 20 /** 21 * The <code>Model</code> encapsulates and manages the runtime behaviour of a 22 * Mule Server instance. It is responsible for maintaining the Service instances and 23 * their configuration. 24 */ 25 public interface Model extends Lifecycle, MuleContextAware, NameableObject, LifecycleStateEnabled 26 { 27 /** 28 * Returns the model type name. This is a friendly identifier that is used to 29 * look up the SPI class for the model 30 * 31 * @return the model type 32 */ 33 String getType(); 34 35 /** 36 * The entry point resolver is used to determine the method to be called on a 37 * service when an event is received for it. 38 * 39 * @return Returns the entryPointResolver. 40 */ 41 EntryPointResolverSet getEntryPointResolverSet(); 42 43 /** 44 * This will be used to build entry points on the components registered with the 45 * model. 46 * 47 * @param entryPointResolver The entryPointResolver to set. This will be used to 48 * build entry points on the components registered with the model. 49 */ 50 void setEntryPointResolverSet(EntryPointResolverSet entryPointResolver); 51 52 /** 53 * The lifecycle adapter is used by the model to translate Mule lifecycle event 54 * to events that components registered with the model understand. The 55 * <code>LifecycleAdapterFactory</code> is used by the model to instanciate 56 * LifecycleAdapters. 57 * 58 * @return Returns the lifecycleAdapterFactory used by this Model. 59 * @see LifecycleAdapterFactory 60 * @see org.mule.api.component.LifecycleAdapter 61 */ 62 LifecycleAdapterFactory getLifecycleAdapterFactory(); 63 64 /** 65 * Sets the lifecycleAdapterFactory on the model. 66 * 67 * @param lifecycleAdapterFactory The lifecycleAdapterFactory to set on this 68 * model. 69 * @see LifecycleAdapterFactory 70 * @see org.mule.api.component.LifecycleAdapter 71 */ 72 void setLifecycleAdapterFactory(LifecycleAdapterFactory lifecycleAdapterFactory); 73 74 /** 75 * The exception strategy to use by components managed by the model. The 76 * exception strategy is used when an exception occurs while processing the 77 * current event for a service. A service can define it's own exception 78 * strategy, but if it doesn't this implmentation will be used. 79 * 80 * @return the default exception strategy for this model. 81 * @see MessagingExceptionHandler 82 */ 83 MessagingExceptionHandler getExceptionListener(); 84 85 /** 86 * The exception strategy to use by components managed by the model. The 87 * exception strategy is used when an exception occurs while processing the 88 * current event for a service. A service can define it's own exception 89 * strategy, but if it doesn't this implmentation will be used. 90 * 91 * @param listener the default exception strategy for this model. 92 * @see MessagingExceptionHandler 93 */ 94 void setExceptionListener(MessagingExceptionHandler listener); 95 96 }