123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package javax.security.auth.callback;
- import java.io.Serializable;
- import org.apache.harmony.auth.internal.nls.Messages;
- public class ChoiceCallback implements Callback, Serializable {
- private static final long serialVersionUID = -3975664071579892167L;
- private int defaultChoice;
- private String prompt;
- private boolean multipleSelectionsAllowed;
- private String[] choices;
- private int[] selections;
- private void setChoices(String[] choices) {
- if (choices == null || choices.length == 0) {
- throw new IllegalArgumentException(Messages.getString("auth.1C")); //$NON-NLS-1$
- }
- for (int i = 0; i < choices.length; i++) {
- if (choices[i] == null || choices[i].length() == 0) {
- throw new IllegalArgumentException(Messages.getString("auth.1C")); //$NON-NLS-1$
- }
- }
- //FIXME: System.arraycopy(choices, 0 , new String[choices.length], 0, choices.length);
- this.choices = choices;
- }
- private void setPrompt(String prompt) {
- if (prompt == null || prompt.length() == 0) {
- throw new IllegalArgumentException(Messages.getString("auth.14")); //$NON-NLS-1$
- }
- this.prompt = prompt;
- }
- private void setDefaultChoice(int defaultChoice) {
- if (0 > defaultChoice || defaultChoice >= choices.length) {
- throw new IllegalArgumentException(Messages.getString("auth.1D")); //$NON-NLS-1$
- }
- this.defaultChoice = defaultChoice;
- }
- public ChoiceCallback(String prompt, String[] choices, int defaultChoice,
- boolean multipleSelectionsAllowed) {
- super();
- setPrompt(prompt);
- setChoices(choices);
- setDefaultChoice(defaultChoice);
- this.multipleSelectionsAllowed = multipleSelectionsAllowed;
- }
- public boolean allowMultipleSelections() {
- return multipleSelectionsAllowed;
- }
- public String[] getChoices() {
- return choices;
- }
- public int getDefaultChoice() {
- return defaultChoice;
- }
- public String getPrompt() {
- return prompt;
- }
- public int[] getSelectedIndexes() {
- return selections;
- }
- public void setSelectedIndex(int selection) {
- this.selections = new int[1];
- this.selections[0] = selection;
- }
- public void setSelectedIndexes(int[] selections) {
- if (!multipleSelectionsAllowed) {
- throw new UnsupportedOperationException();
- }
- this.selections = selections;
- //FIXME:
- // this.selections = new int[selections.length]
- //System.arraycopy(selections, 0, this.selections, 0, this.selections.length);
- }
- }
|