1 /*
2 * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package javax.security.auth.callback;
27
28 /**
29 * <p> Underlying security services instantiate and pass a
30 * <code>TextInputCallback</code> to the <code>handle</code>
31 * method of a <code>CallbackHandler</code> to retrieve generic text
32 * information.
33 *
34 * @see javax.security.auth.callback.CallbackHandler
35 */
36 public class TextInputCallback implements Callback, java.io.Serializable {
37
38 private static final long serialVersionUID = -8064222478852811804L;
39
40 /**
41 * @serial
42 * @since 1.4
43 */
44 private String prompt;
45 /**
46 * @serial
47 * @since 1.4
48 */
49 private String defaultText;
50 /**
51 * @serial
52 * @since 1.4
53 */
54 private String inputText;
55
56 /**
57 * Construct a <code>TextInputCallback</code> with a prompt.
58 *
59 * <p>
60 *
61 * @param prompt the prompt used to request the information.
62 *
63 * @exception IllegalArgumentException if <code>prompt</code> is null
64 * or if <code>prompt</code> has a length of 0.
65 */
66 public TextInputCallback(String prompt) {
67 if (prompt == null || prompt.length() == 0)
68 throw new IllegalArgumentException();
69 this.prompt = prompt;
70 }
71
72 /**
73 * Construct a <code>TextInputCallback</code> with a prompt
74 * and default input value.
75 *
76 * <p>
77 *
78 * @param prompt the prompt used to request the information. <p>
79 *
80 * @param defaultText the text to be used as the default text displayed
81 * with the prompt.
82 *
83 * @exception IllegalArgumentException if <code>prompt</code> is null,
84 * if <code>prompt</code> has a length of 0,
85 * if <code>defaultText</code> is null
86 * or if <code>defaultText</code> has a length of 0.
87 */
88 public TextInputCallback(String prompt, String defaultText) {
89 if (prompt == null || prompt.length() == 0 ||
90 defaultText == null || defaultText.length() == 0)
91 throw new IllegalArgumentException();
92
93 this.prompt = prompt;
94 this.defaultText = defaultText;
95 }
96
97 /**
98 * Get the prompt.
99 *
100 * <p>
101 *
102 * @return the prompt.
103 */
104 public String getPrompt() {
105 return prompt;
106 }
107
108 /**
109 * Get the default text.
110 *
111 * <p>
112 *
113 * @return the default text, or null if this <code>TextInputCallback</code>
114 * was not instantiated with <code>defaultText</code>.
115 */
116 public String getDefaultText() {
117 return defaultText;
118 }
119
120 /**
121 * Set the retrieved text.
122 *
123 * <p>
124 *
125 * @param text the retrieved text, which may be null.
126 *
127 * @see #getText
128 */
129 public void setText(String text) {
130 this.inputText = text;
131 }
132
133 /**
134 * Get the retrieved text.
135 *
136 * <p>
137 *
138 * @return the retrieved text, which may be null.
139 *
140 * @see #setText
141 */
142 public String getText() {
143 return inputText;
144 }
145 }