package org.infinispan.interceptors.impl;
import org.infinispan.commands.VisitableCommand;
import org.infinispan.context.InvocationContext;
import org.infinispan.interceptors.BaseAsyncInterceptor;
import org.infinispan.util.logging.Log;
import org.infinispan.util.logging.LogFactory;
/**
* Always at the end of the chain, directly in front of the cache. Simply calls into the cache using reflection. If the
* call resulted in a modification, add the Modification to the end of the modification list keyed by the current
* transaction.
*
* @author Bela Ban
* @author Mircea.Markus@jboss.com
* @author Dan Berindei
* @since 9.0
*/
public class CallInterceptor extends BaseAsyncInterceptor {
private static final Log log = LogFactory.getLog(CallInterceptor.class);
private static final boolean trace = log.isTraceEnabled();
@Override
public Object visitCommand(InvocationContext ctx, VisitableCommand command)
throws Throwable {
if (trace)
log.tracef("Invoking: %s", command.getClass().getSimpleName());
return command.perform(ctx);
}
}