package com.codepoetics.phantompojo.impl;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
interface DispatchingInvocationHandler extends InvocationHandler {
@Override
default Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if (method.isDefault())
{
return ReflectionUtils.invokeDefault(proxy, method, args);
}
if (method.getDeclaringClass().isAssignableFrom(getClass())) {
return method.invoke(this, args);
}
return invokeMissing(proxy, method, args);
}
Object invokeMissing(Object proxy, Method method, Object[] args);
}