Class StepListener<Response>

  • All Implemented Interfaces:
    ActionListener<Response>

    public final class StepListener<Response>
    extends java.lang.Object
    implements ActionListener<Response>
    A StepListener provides a simple way to write a flow consisting of multiple asynchronous steps without having nested callbacks. For example:
    
      void asyncFlowMethod(... ActionListener<R> flowListener) {
        StepListener<R1> step1 = new StepListener<>();
        asyncStep1(..., step1);
    
        StepListener<R2> step2 = new StepListener<>();
        step1.whenComplete(r1 -> {
          asyncStep2(r1, ..., step2);
        }, flowListener::onFailure);
    
        step2.whenComplete(r2 -> {
          R1 r1 = step1.result();
          R r = combine(r1, r2);
         flowListener.onResponse(r);
        }, flowListener::onFailure);
      }
     
    • Constructor Summary

      Constructors 
      Constructor Description
      StepListener()  
    • Method Summary

      Modifier and Type Method Description
      void onFailure​(java.lang.Exception e)
      A failure caused by an exception at some phase of the task.
      void onResponse​(Response response)
      Handle action response.
      Response result()
      Gets the result of this step.
      void whenComplete​(CheckedConsumer<Response,​java.lang.Exception> onResponse, java.util.function.Consumer<java.lang.Exception> onFailure)
      Registers the given actions which are called when this step is completed.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StepListener

        public StepListener()
    • Method Detail

      • onResponse

        public void onResponse​(Response response)
        Description copied from interface: ActionListener
        Handle action response. This response may constitute a failure or a success but it is up to the listener to make that decision.
        Specified by:
        onResponse in interface ActionListener<Response>
      • onFailure

        public void onFailure​(java.lang.Exception e)
        Description copied from interface: ActionListener
        A failure caused by an exception at some phase of the task.
        Specified by:
        onFailure in interface ActionListener<Response>
      • whenComplete

        public void whenComplete​(CheckedConsumer<Response,​java.lang.Exception> onResponse,
                                 java.util.function.Consumer<java.lang.Exception> onFailure)
        Registers the given actions which are called when this step is completed. If this step is completed successfully, the onResponse is called with the result; otherwise the onFailure is called with the failure.
        Parameters:
        onResponse - is called when this step is completed successfully
        onFailure - is called when this step is completed with a failure
      • result

        public Response result()
        Gets the result of this step. This method will throw IllegalStateException if this step is not completed yet.