class DtpInterceptorProxy implements MethodInterceptor {

    private final Object target;

    private final DtpInterceptor interceptor;

    private final Map<Class<?>, Set<Method>> signatureMap;

    public DtpInterceptorProxy(Object target, DtpInterceptor interceptor, Map<Class<?>, Set<Method>> signatureMap) {
        this.target = target;
        this.interceptor = interceptor;
        this.signatureMap = signatureMap;
    }

    @Override
    public Object intercept(Object object, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {<FILL_FUNCTION_BODY>}
}

        Set<Method> methods = signatureMap.get(method.getDeclaringClass());
        if (CollectionUtils.isNotEmpty(methods) && methods.contains(method)) {
            return interceptor.intercept(new DtpInvocation(target, method, args));
        }

        return method.invoke(target, args);
    
<no_super_class>