Class SequenceHandler

  • All Implemented Interfaces:
    Handler

    public class SequenceHandler
    extends Object
    implements Handler
    Processes a request through a sequence of handlers. This allows multi-request processing such as retrieving a form, extracting form content (e.g. nonce) and submitting in a subsequent request.
    • Constructor Detail

      • SequenceHandler

        public SequenceHandler()
    • Method Detail

      • addBinding

        public SequenceHandler addBinding​(Handler handler,
                                          Expression<Boolean> postcondition)
        Binds sequenced handlers with sequence processing postconditions.
        Parameters:
        handler - The name of the handler heap object to dispatch to if the associated condition yields true.
        postcondition - evaluated to determine if sequence continues (default: null a.k.a. unconditional)
        Returns:
        The current dispatch handler.
      • handle

        public Promise<Response,​NeverThrowsException> handle​(Context context,
                                                                   Request request)
        Description copied from interface: Handler
        Returns a Promise representing the asynchronous Response of the given request. If any (asynchronous) processing goes wrong, the promise still contains a Response (probably from the 4xx or 5xx status code family).

        A handler that doesn't hand-off the processing to another downstream handler is responsible for creating the response.

        The returned Promise contains the response returned from the server as-is. This is responsibility of the handler to produce the appropriate error response (404, 500, ...) in case of processing error.

        Note: As of Promise 2.0 implementation, it is not permitted to throw any runtime exception here. Doing so produce unexpected behaviour (most likely a server-side hang of the processing thread).

        Specified by:
        handle in interface Handler
        Parameters:
        context - The request context.
        request - The request.
        Returns:
        A Promise representing the response to be returned to the caller.