1 /*
2 * Copyright 1999-2003 Sun Microsystems, Inc. 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. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26 package javax.security.auth.callback;
27
28 /**
29 * <p> Underlying security services instantiate and pass a
30 * <code>NameCallback</code> to the <code>handle</code>
31 * method of a <code>CallbackHandler</code> to retrieve name information.
32 *
33 * @see javax.security.auth.callback.CallbackHandler
34 */
35 public class NameCallback implements Callback, java.io.Serializable {
36
37 private static final long serialVersionUID = 3770938795909392253L;
38
39 /**
40 * @serial
41 * @since 1.4
42 */
43 private String prompt;
44 /**
45 * @serial
46 * @since 1.4
47 */
48 private String defaultName;
49 /**
50 * @serial
51 * @since 1.4
52 */
53 private String inputName;
54
55 /**
56 * Construct a <code>NameCallback</code> with a prompt.
57 *
58 * <p>
59 *
60 * @param prompt the prompt used to request the name.
61 *
62 * @exception IllegalArgumentException if <code>prompt</code> is null
63 * or if <code>prompt</code> has a length of 0.
64 */
65 public NameCallback(String prompt) {
66 if (prompt == null || prompt.length() == 0)
67 throw new IllegalArgumentException();
68 this.prompt = prompt;
69 }
70
71 /**
72 * Construct a <code>NameCallback</code> with a prompt
73 * and default name.
74 *
75 * <p>
76 *
77 * @param prompt the prompt used to request the information. <p>
78 *
79 * @param defaultName the name to be used as the default name displayed
80 * with the prompt.
81 *
82 * @exception IllegalArgumentException if <code>prompt</code> is null,
83 * if <code>prompt</code> has a length of 0,
84 * if <code>defaultName</code> is null,
85 * or if <code>defaultName</code> has a length of 0.
86 */
87 public NameCallback(String prompt, String defaultName) {
88 if (prompt == null || prompt.length() == 0 ||
89 defaultName == null || defaultName.length() == 0)
90 throw new IllegalArgumentException();
91
92 this.prompt = prompt;
93 this.defaultName = defaultName;
94 }
95
96 /**
97 * Get the prompt.
98 *
99 * <p>
100 *
101 * @return the prompt.
102 */
103 public String getPrompt() {
104 return prompt;
105 }
106
107 /**
108 * Get the default name.
109 *
110 * <p>
111 *
112 * @return the default name, or null if this <code>NameCallback</code>
113 * was not instantiated with a <code>defaultName</code>.
114 */
115 public String getDefaultName() {
116 return defaultName;
117 }
118
119 /**
120 * Set the retrieved name.
121 *
122 * <p>
123 *
124 * @param name the retrieved name (which may be null).
125 *
126 * @see #getName
127 */
128 public void setName(String name) {
129 this.inputName = name;
130 }
131
132 /**
133 * Get the retrieved name.
134 *
135 * <p>
136 *
137 * @return the retrieved name (which may be null)
138 *
139 * @see #setName
140 */
141 public String getName() {
142 return inputName;
143 }
144 }