ChoiceCallback — 선택지 제공 콜백
ChoiceCallback — 선택지 제공 콜백
ChoiceCallback은 CallbackHandler의 handle 메서드에 전달되어 선택지 목록을 표시하고 선택된 선택지를 검색하는 데 사용되는 콜백 클래스예요. 기본 보안 서비스가 사용자에게 여러 옵션 중 하나(또는 여러 개)를 고르게 하고 싶을 때 사용해요.
본문
public class ChoiceCallback extends Object implements Callback, Serializable
알려진 직접 하위 클래스로 RealmChoiceCallback이 있어요.
생성자
ChoiceCallback(String prompt, String[] choices, int defaultChoice, boolean multipleSelectionsAllowed)— 프롬프트, 선택지 목록, 기본 선택지, 선택지 목록에서 여러 개를 선택할 수 있는지 여부를 나타내는 불리언으로ChoiceCallback을 생성해요.choices배열은 이후 수정으로부터 보호하기 위해 복제(clone)돼요.defaultChoice는 선택지 목록이 표시될 때 기본 선택지로 사용될 선택지의 배열 인덱스예요.prompt가null이거나 길이가 0이거나,choices가null이거나 길이가 0이거나,choices의 어떤 요소가null이거나 길이 0이거나,defaultChoice가choices배열 범위를 벗어나면IllegalArgumentException이 발생해요.
메서드
boolean allowMultipleSelections()— 선택지 목록에서 여러 선택이 허용되는지 여부를 결정하는 불리언을 반환해요.String[] getChoices()— 선택지 목록을 반환해요.int getDefaultChoice()—defaultChoice를 반환해요.String getPrompt()— 프롬프트를 반환해요.int[] getSelectedIndexes()— 선택된 선택지들을 반환해요.void setSelectedIndex(int selection)— 선택된 선택지를 설정해요.void setSelectedIndexes(int[] selections)— 선택된 선택지들을 설정해요.
어떻게 쓰일까요?
보안 서비스(예: 로그인 모듈)가 사용자에게 "인증 수준을 선택하세요" 같은 질문을 하고 싶을 때 ChoiceCallback을 만들어 CallbackHandler.handle로 전달해요. CallbackHandler는 선택지 목록을 사용자에게 보여주고, 사용자가 고른 결과를 setSelectedIndex/setSelectedIndexes로 돌려줘요. 이후 보안 서비스는 getSelectedIndexes로 그 결과를 읽어요.