All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tddmonkey.reactoraws.common.AmazonWebServiceRequestAsyncHandler Maven / Gradle / Ivy

The newest version!
package tddmonkey.reactoraws.common;

import com.amazonaws.AmazonWebServiceRequest;
import com.amazonaws.handlers.AsyncHandler;
import reactor.core.publisher.MonoSink;

public class AmazonWebServiceRequestAsyncHandler implements AsyncHandler {
    private final MonoSink subscriber;
    private boolean shouldEmitValue;

    private AmazonWebServiceRequestAsyncHandler(MonoSink subscriber, boolean shouldEmitValue) {
        this.subscriber = subscriber;
        this.shouldEmitValue = shouldEmitValue;
    }

    @Override
    public void onError(Exception exception) {
        subscriber.error(exception);
    }

    @Override
    public void onSuccess(RQ request, RS response) {
        if (shouldEmitValue) {
            subscriber.success(response);
        } else {
            subscriber.success();
        }
    }

    public static  AsyncHandler valueEmittingHandlerFor(final MonoSink subscriber) {
        return new AmazonWebServiceRequestAsyncHandler<>(subscriber, true);
    }

    public static  AsyncHandler voidHandlerFor(MonoSink subscriber) {
        return new AmazonWebServiceRequestAsyncHandler<>(subscriber, false);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy