class ProxyFactoryBase implements ProxyFactory {

    @SuppressWarnings("unchecked")
    @NonNull
    protected <T> T defaultProxy(@NonNull Class<T> cls, @NonNull MessageSender sender) {
        if (ResultListener.class.equals(cls)) {
            return (T) new ResultListenerProxy(sender);
        }

        throw new IllegalArgumentException("Proxy for class " + cls.getCanonicalName() + " was not generated. " +
                "Did you forget to annotate interface by @ActorInterface annotation?");
    }

    protected  ProxyFactoryBase();

}