io.vertx.core.eventbus

## Interface Message<T>

-     public interface Message<T>

  Represents a message that is received from the event bus in a handler.

  Messages have a `body()`, which can be null, and also `headers()`, which can be empty.

  If the message was sent specifying a reply handler, it can be replied to using `reply(java.lang.Object)`.

  If you want to notify the sender that processing failed, then `fail(int, java.lang.String)` can be called.

  Author:
    Tim Fox

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `address()` The address the message was sent to
    `T` | `body()` The body of the message.
    `default void` | `fail(int failureCode, String message)` Signal to the sender that processing of this message failed.
    `MultiMap` | `headers()` Multi-map of message headers.
    `boolean` | `isSend()` Signals if this message represents a send or publish event.
    `default void` | `reply(Object message)` Reply to this message.
    `void` | `reply(Object message, DeliveryOptions options)` Link `reply(Object)` but allows you to specify delivery options for the reply.
    `String` | `replyAddress()` The reply address.
    `default <R> Future<Message<R>>` | `replyAndRequest(Object message)` Like `replyAndRequest(Object, Handler)` but returns a `Future` of the asynchronous result
    `<R> Future<Message<R>>` | `replyAndRequest(Object message, DeliveryOptions options)` Like `replyAndRequest(Object, DeliveryOptions, Handler)` but returns a `Future` of the asynchronous result
    `default <R> void` | `replyAndRequest(Object message, DeliveryOptions options, Handler<AsyncResult<Message<R>>> replyHandler)` Like `replyAndRequest(Object, Handler)` but specifying `options` that can be used to configure the delivery.
    `default <R> void` | `replyAndRequest(Object message, Handler<AsyncResult<Message<R>>> replyHandler)` Reply to this message, specifying a `replyHandler` for the reply - i.e.

- - ### Method Detail

    - #### address

          String address()

      The address the message was sent to

    - #### headers

          MultiMap headers()

      Multi-map of message headers. Can be empty
      Returns:
        the headers

    - #### body

          T body()

      The body of the message. Can be null.
      Returns:
        the body, or null.

    - #### replyAddress

          String replyAddress()

      The reply address. Can be null.
      Returns:
        the reply address, or null, if message was sent without a reply handler.

    - #### isSend

          boolean isSend()

      Signals if this message represents a send or publish event.
      Returns:
        true if this is a send.

    - #### reply

          default void reply(Object message)

      Reply to this message.

      If the message was sent specifying a reply handler, that handler will be called when it has received a reply. If the message wasn't sent specifying a receipt handler this method does nothing.

      Parameters:
        `message` - the message to reply with.

    - #### reply

          void reply(Object message,
                     DeliveryOptions options)

      Link `reply(Object)` but allows you to specify delivery options for the reply.
      Parameters:
        `message` - the reply message
        `options` - the delivery options

    - #### replyAndRequest

          default <R> void replyAndRequest(Object message,
                                           Handler<AsyncResult<Message<R>>> replyHandler)

      Reply to this message, specifying a `replyHandler` for the reply - i.e. to receive the reply to the reply.

      If the message was sent specifying a reply handler, that handler will be called when it has received a reply. If the message wasn't sent specifying a receipt handler this method does nothing.

      Parameters:
        `message` - the message to reply with.
        `replyHandler` - the reply handler for the reply.

    - #### replyAndRequest

          default <R> Future<Message<R>> replyAndRequest(Object message)

      Like `replyAndRequest(Object, Handler)` but returns a `Future` of the asynchronous result

    - #### replyAndRequest

          default <R> void replyAndRequest(Object message,
                                           DeliveryOptions options,
                                           Handler<AsyncResult<Message<R>>> replyHandler)

      Like `replyAndRequest(Object, Handler)` but specifying `options` that can be used to configure the delivery.
      Parameters:
        `message` - the message body, may be `null`
        `options` - delivery options
        `replyHandler` - reply handler will be called when any reply from the recipient is received

    - #### replyAndRequest

          <R> Future<Message<R>> replyAndRequest(Object message,
                                                 DeliveryOptions options)

      Like `replyAndRequest(Object, DeliveryOptions, Handler)` but returns a `Future` of the asynchronous result

    - #### fail

          default void fail(int failureCode,
                            String message)

      Signal to the sender that processing of this message failed.

      If the message was sent specifying a result handler the handler will be called with a failure corresponding to the failure code and message specified here.

      Parameters:
        `failureCode` - A failure code to pass back to the sender
        `message` - A message to pass back to the sender

Copyright © 2021 Eclipse. All rights reserved.