| DispatchInterceptor.java |
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.jms.container;
import java.lang.reflect.InvocationTargetException;
import org.jboss.aop.advice.Interceptor;
import org.jboss.aop.joinpoint.Invocation;
import org.jboss.aop.joinpoint.MethodInvocation;
/**
* An interceptor for dispatching invocations.
*
* @author <a href="mailto:adrian@jboss.org>Adrian Brock</a>
* @version $Revision: 1.3 $
*/
public class DispatchInterceptor
implements Interceptor
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
/** The target object */
private Object target;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
/**
* Create a new dispatch interceptor
*
* @param target the target object
*/
public DispatchInterceptor(Object target)
{
this.target = target;
}
// Public --------------------------------------------------------
// Interceptor implementation -----------------------------------
public String getName()
{
return "DispatchInterceptor";
}
public Object invoke(Invocation invocation) throws Throwable
{
MethodInvocation mi = (MethodInvocation) invocation;
try
{
return mi.getMethod().invoke(target, mi.getArguments());
}
catch (Throwable t)
{
if (t instanceof InvocationTargetException)
throw ((InvocationTargetException) t).getTargetException();
throw t;
}
}
// Protected ------------------------------------------------------
// Package Private ------------------------------------------------
// Private --------------------------------------------------------
// Inner Classes --------------------------------------------------
}
| DispatchInterceptor.java |