Module java.base
Package javax.security.auth.callback

## Class ChoiceCallback

- java.lang.Object
- - javax.security.auth.callback.ChoiceCallback

- All Implemented Interfaces:
    `Serializable`, `Callback`
  Direct Known Subclasses:
    `RealmChoiceCallback`

      public class ChoiceCallback
      extends Object
      implements Callback, Serializable

  Underlying security services instantiate and pass a `ChoiceCallback` to the `handle` method of a `CallbackHandler` to display a list of choices and to retrieve the selected choice(s).

  Since:
    1.4
  See Also:
    `CallbackHandler`, Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ChoiceCallback​(String prompt, String[] choices, int defaultChoice, boolean multipleSelectionsAllowed)` | Construct a `ChoiceCallback` with a prompt, a list of choices, a default choice, and a boolean specifying whether or not multiple selections from the list of choices are allowed.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `allowMultipleSelections()` | Get the boolean determining whether multiple selections from the `choices` list are allowed.
    `String[]` | `getChoices()` | Get the list of choices.
    `int` | `getDefaultChoice()` | Get the defaultChoice.
    `String` | `getPrompt()` | Get the prompt.
    `int[]` | `getSelectedIndexes()` | Get the selected choices.
    `void` | `setSelectedIndex​(int selection)` | Set the selected choice.
    `void` | `setSelectedIndexes​(int[] selections)` | Set the selected choices.

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ChoiceCallback

          public ChoiceCallback​(String prompt,
                                String[] choices,
                                int defaultChoice,
                                boolean multipleSelectionsAllowed)

      Construct a `ChoiceCallback` with a prompt, a list of choices, a default choice, and a boolean specifying whether or not multiple selections from the list of choices are allowed.
      Parameters:
        `prompt` - the prompt used to describe the list of choices.
        `choices` - the list of choices.
        `defaultChoice` - the choice to be used as the default choice when the list of choices are displayed. This value is represented as an index into the `choices` array.
        `multipleSelectionsAllowed` - boolean specifying whether or not multiple selections can be made from the list of choices.
      Throws:
        `IllegalArgumentException` - if `prompt` is null, if `prompt` has a length of 0, if `choices` is null, if `choices` has a length of 0, if any element from `choices` is null, if any element from `choices` has a length of 0 or if `defaultChoice` does not fall within the array boundaries of `choices`.

  - ### Method Detail

    - #### getPrompt

          public String getPrompt()

      Get the prompt.
      Returns:
        the prompt.

    - #### getChoices

          public String[] getChoices()

      Get the list of choices.
      Returns:
        the list of choices.

    - #### getDefaultChoice

          public int getDefaultChoice()

      Get the defaultChoice.
      Returns:
        the defaultChoice, represented as an index into the `choices` list.

    - #### allowMultipleSelections

          public boolean allowMultipleSelections()

      Get the boolean determining whether multiple selections from the `choices` list are allowed.
      Returns:
        whether multiple selections are allowed.

    - #### setSelectedIndex

          public void setSelectedIndex​(int selection)

      Set the selected choice.
      Parameters:
        `selection` - the selection represented as an index into the `choices` list.
      See Also:
        `getSelectedIndexes()`

    - #### setSelectedIndexes

          public void setSelectedIndexes​(int[] selections)

      Set the selected choices.
      Parameters:
        `selections` - the selections represented as indexes into the `choices` list.
      Throws:
        `UnsupportedOperationException` - if multiple selections are not allowed, as determined by `allowMultipleSelections`.
      See Also:
        `getSelectedIndexes()`

    - #### getSelectedIndexes

          public int[] getSelectedIndexes()

      Get the selected choices.
      Returns:
        the selected choices, represented as indexes into the `choices` list.
      See Also:
        `setSelectedIndexes(int[])`