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.interceptor; 8 9 import org.mule.api.MuleEvent; 10 import org.mule.api.MuleException; 11 import org.mule.api.processor.InterceptingMessageProcessor; 12 13 /** 14 * <code>Interceptor</code> is based on a similar concept of servlet filters and 15 * works much the same way. This method is more commonally known as the interceptor 16 * pattern and it allows for pre and processing of invocations on the object being 17 * intercepted. 18 */ 19 public interface Interceptor extends InterceptingMessageProcessor 20 { 21 22 /** 23 * Invoked when the component should be called. The implementation can call 24 * next.process(event) to call the component or the next filer in the chain. 25 * 26 * @param event the event containing info about the current message and service 27 * @return A result message that may have been altered by this invocation 28 * @throws org.mule.api.MuleException if the invocation fails 29 */ 30 MuleEvent process(MuleEvent event) throws MuleException; 31 32 }