Class OutboundEvent.Builder

  • All Implemented Interfaces:
    jakarta.ws.rs.sse.OutboundSseEvent.Builder
    Enclosing class:
    OutboundEvent

    public static class OutboundEvent.Builder
    extends Object
    implements jakarta.ws.rs.sse.OutboundSseEvent.Builder
    Used for creating OutboundEvent instances.
    • Constructor Detail

      • Builder

        public Builder()
    • Method Detail

      • name

        public OutboundEvent.Builder name​(String name)
        Set event name.

        Will be send as a value of the SSE "event" field. This field is optional.

        Specified by:
        name in interface jakarta.ws.rs.sse.OutboundSseEvent.Builder
        Parameters:
        name - event name.
        Returns:
        updated builder instance.
      • id

        public OutboundEvent.Builder id​(String id)
        Set event id.

        Will be send as a value of the SSE "id" field. This field is optional.

        Specified by:
        id in interface jakarta.ws.rs.sse.OutboundSseEvent.Builder
        Parameters:
        id - event id.
        Returns:
        updated builder instance.
      • reconnectDelay

        public OutboundEvent.Builder reconnectDelay​(long milliseconds)
        Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait before attempting to reconnect in case a connection to SSE event source is lost.

        Will be send as a value of the SSE "retry" field. This field is optional.

        Absence of a value of this field in an OutboundEvent instance is indicated by SseFeature.RECONNECT_NOT_SET value returned from OutboundEvent.getReconnectDelay().

        Specified by:
        reconnectDelay in interface jakarta.ws.rs.sse.OutboundSseEvent.Builder
        Parameters:
        milliseconds - reconnection delay in milliseconds. Negative values un-set the reconnection delay.
        Returns:
        updated builder instance.
        Since:
        2.3
      • mediaType

        public OutboundEvent.Builder mediaType​(jakarta.ws.rs.core.MediaType mediaType)
        Set the media type of the event data.

        This information is mandatory. The default value is MediaType.TEXT_PLAIN.

        Specified by:
        mediaType in interface jakarta.ws.rs.sse.OutboundSseEvent.Builder
        Parameters:
        mediaType - MediaType of event data. Must not be null.
        Returns:
        updated builder instance.
        Throws:
        NullPointerException - in case the mediaType parameter is null.
      • comment

        public OutboundEvent.Builder comment​(String comment)
        Set comment string associated with the event. The comment will be serialized with the event, before event data are serialized. If the event does not contain any data, a separate "event" that contains only the comment will be sent. This information is optional, provided the event data are set.

        Note that multiple invocations of this method result in a previous comment being replaced with a new one. To achieve multi-line comments, a multi-line comment string has to be used.

        Specified by:
        comment in interface jakarta.ws.rs.sse.OutboundSseEvent.Builder
        Parameters:
        comment - comment string.
        Returns:
        updated builder instance.
      • data

        public OutboundEvent.Builder data​(Class type,
                                          Object data)
        Set event data and java type of event data. Type information will be used for MessageBodyWriter lookup.

        Note that multiple invocations of this method result in previous even data being replaced with new one.

        Specified by:
        data in interface jakarta.ws.rs.sse.OutboundSseEvent.Builder
        Parameters:
        type - java type of supplied data. Must not be null.
        data - event data. Must not be null.
        Returns:
        updated builder instance.
        Throws:
        NullPointerException - in case either type or data parameter is null.
      • data

        public OutboundEvent.Builder data​(jakarta.ws.rs.core.GenericType type,
                                          Object data)
        Set event data and a generic java type of event data. Type information will be used for MessageBodyWriter lookup.

        Note that multiple invocations of this method result in previous even data being replaced with new one.

        Specified by:
        data in interface jakarta.ws.rs.sse.OutboundSseEvent.Builder
        Parameters:
        type - generic type of supplied data. Must not be null.
        data - event data. Must not be null.
        Returns:
        updated builder instance.
        Throws:
        NullPointerException - in case either type or data parameter is null.
        Since:
        2.3
      • data

        public OutboundEvent.Builder data​(Object data)
        Set event data and java type of event data. This is a convenience method that derives the event data type information from the runtime type of the event data. The supplied event data may be represented as GenericEntity.

        Note that multiple invocations of this method result in previous even data being replaced with new one.

        Specified by:
        data in interface jakarta.ws.rs.sse.OutboundSseEvent.Builder
        Parameters:
        data - event data. Must not be null.
        Returns:
        updated builder instance.
        Throws:
        NullPointerException - in case the data parameter is null.
        Since:
        2.3
      • build

        public OutboundEvent build()
        Build OutboundEvent.

        There are two valid configurations:

        • if a comment is set, all other parameters are optional. If event data and media type is set, event data will be serialized after the comment.
        • if a comment is not set, at least the event data must be set. All other parameters are optional.

        Specified by:
        build in interface jakarta.ws.rs.sse.OutboundSseEvent.Builder
        Returns:
        new OutboundEvent instance.
        Throws:
        IllegalStateException - when called with invalid configuration (neither a comment nor event data are set).