package org.jboss.seam.intercept;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import org.jboss.seam.util.Reflections;
/**
* InvocationContext for use with CGLIB-based interceptors.
*
* @author Gavin King
*
*/
class RootInvocationContext implements InvocationContext
{
private final Object bean;
private final Method method;
private Object[] params;
private final Map contextData = new HashMap();
public RootInvocationContext(Object bean, Method method, Object[] params)
{
this.bean = bean;
this.method = method;
this.params = params;
}
public Object proceed() throws Exception
{
method.setAccessible(true);
return Reflections.invoke(method, bean, params);
}
public Object getTarget()
{
return bean;
}
public Map getContextData()
{
return contextData;
}
public Method getMethod()
{
return method;
}
public Object[] getParameters()
{
return params;
}
public void setParameters(Object[] newParams)
{
params = newParams;
}
}