Module jakarta.cdi

Interface Conversation


  • public interface Conversation

    Allows the application to manage the conversation context by marking the current conversation as transient or long-running, specifying a conversation identifier, or setting the conversation timeout.

    An instance may be injected:

     @Inject
     Conversation conversation;
     

    The conversation timeout is a hint to the container that a conversation should not be destroyed if it has been active within the last given interval in milliseconds.

    CDI Lite implementations are not required to provide support for conversations.

    Author:
    Pete Muir, Gavin King
    See Also:
    ConversationScoped
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void begin()
      Mark the current transient conversation long-running.
      void begin​(java.lang.String id)
      Mark the current transient conversation long-running, with a specified identifier.
      void end()
      Marks the current long-running conversation transient.
      java.lang.String getId()
      Get the identifier of the current long-running conversation.
      long getTimeout()
      Get the timeout of the current conversation.
      boolean isTransient()
      Determine if the conversation is marked transient or long-running.
      void setTimeout​(long milliseconds)
      Set the timeout of the current conversation.
    • Method Detail

      • begin

        void begin()

        Mark the current transient conversation long-running. A conversation identifier is generated by the container.

        Throws:
        java.lang.IllegalStateException - if the current conversation is already marked long-running.
      • begin

        void begin​(java.lang.String id)

        Mark the current transient conversation long-running, with a specified identifier.

        Parameters:
        id - conversation id
        Throws:
        java.lang.IllegalStateException - if the current conversation is already marked long-running.
        java.lang.IllegalArgumentException - if a conversation with the specified identifier already exists.
      • end

        void end()

        Marks the current long-running conversation transient.

        Throws:
        java.lang.IllegalStateException - if the current conversation is already marked transient.
      • getId

        java.lang.String getId()

        Get the identifier of the current long-running conversation.

        Returns:
        the identifier of the current long-running conversation, or a null value if the current conversation is transient.
      • getTimeout

        long getTimeout()

        Get the timeout of the current conversation.

        Returns:
        the current timeout in milliseconds.
      • setTimeout

        void setTimeout​(long milliseconds)

        Set the timeout of the current conversation.

        Parameters:
        milliseconds - the new timeout in milliseconds.
      • isTransient

        boolean isTransient()

        Determine if the conversation is marked transient or long-running.

        Returns:
        true if the conversation is marked transient, or falseif it is marked long-running.