compact1, compact2, compact3
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).

See Also:
  `CallbackHandler`, Serialized Form

### Constructor Summary

Constructors
Constructor and 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

All Methods Instance Methods Concrete Methods
`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 inherited from 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[])`