class SyncClientAdapterHandler implements InvocationHandler {

    private Object handleMethodFromObject(Method method, Object[] args)
            throws IllegalAccessException, InvocationTargetException {
        if (METHOD_EQUALS.equals(method.getName())) {
            Object other = args[0];
            if (!Proxy.isProxyClass(other.getClass())) {
                return false;
            }
            InvocationHandler otherHandler = Proxy.getInvocationHandler(other);
            return otherHandler instanceof SyncClientAdapterHandler &&
                    ((SyncClientAdapterHandler) otherHandler).delegate == delegate;
        } else {
            return method.invoke(delegate, args);
        }
    }

    private  SyncClientAdapterHandler(Class<?> asyncIfcClass, Object delegate);

}