class PromiseProxy extends Promise<R> implements Message<T, R>, ActionHandle, ResultListener<R> {

    @Override
    public void onResult(@Nullable R result) {
        final ResultListener<R> listener = mListener;
        mListener = null;

        if (listener == null) {
            throw new ResultListenerIsNotSpecifiedException();
        }

        listener.onResult(result);
    }

      PromiseProxy(@NonNull MessageSender sender, @NonNull Message<T, R> message);

}