Conversation
Date: 2015-09-11

javax.enterprise.context

## 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.

  See Also:
    `@ConversationScoped`

- - ### Method Summary

    Methods
    Modifier and Type | Method and 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.

      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 `false`if it is marked long-running.