package org.skywalking.apm.agent.core.plugin.interceptor.enhance; /** * The static method's interceptor interface. * Any plugin, which wants to intercept static methods, must implement this interface. * * @author wusheng */ public interface StaticMethodsAroundInterceptor { /** * called before target method invocation. * * @param interceptorContext method context, includes class name, method name, etc. * @param result change this result, if you want to truncate the method. */ void beforeMethod(StaticMethodInvokeContext interceptorContext, MethodInterceptResult result); /** * called after target method invocation. Even method's invocation triggers an exception. * * @param interceptorContext method context, includes class name, method name, etc. * @param ret the method's original return value. * @return the method's actual return value. */ Object afterMethod(StaticMethodInvokeContext interceptorContext, Object ret); /** * called when occur exception. * * @param t the exception occur. * @param interceptorContext method context, includes class name, method name, etc. */ void handleMethodException(Throwable t, MethodInvokeContext interceptorContext); }