Merge from the pain train
[official-gcc.git] / libjava / javax / security / auth / callback / NameCallback.java
blob094349e19a071bac60ea3b2b49df774e4b6caae0
1 /* NameCallback.java -- callback for user names.
2 Copyright (C) 2003, Free Software Foundation, Inc.
4 This file is part of GNU Classpath.
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING. If not, write to the
18 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19 02111-1307 USA.
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library. Thus, the terms and
23 conditions of the GNU General Public License cover the whole
24 combination.
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module. An independent module is a module which is not derived from
33 or based on this library. If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so. If you do not wish to do so, delete this
36 exception statement from your version. */
39 package javax.security.auth.callback;
41 import java.io.Serializable;
43 /**
44 * Underlying security services instantiate and pass a <code>NameCallback</code>
45 * to the <code>handle()</code> method of a {@link CallbackHandler} to retrieve
46 * name information.
48 * @see CallbackHandler
50 public class NameCallback implements Callback, Serializable
53 // Constants and variables
54 // -------------------------------------------------------------------------
56 /**
57 * @serial
58 * @since 1.4
60 private String prompt;
62 /**
63 * @serial
64 * @since 1.4
66 private String defaultName;
68 /**
69 * @serial
70 * @since 1.4
72 private String inputName;
74 // Constructor(s)
75 // -------------------------------------------------------------------------
77 /**
78 * Construct a <code>NameCallback</code> with a prompt.
80 * @param prompt the prompt used to request the name.
81 * @throws IllegalArgumentException if <code>prompt</code> is <code>null</code>
82 * or if <code>prompt</code> has a length of <code>0</code>.
84 public NameCallback(String prompt)
86 super();
88 setPrompt(prompt);
91 /**
92 * Construct a <code>NameCallback</code> with a prompt and default name.
94 * @param prompt the prompt used to request the information.
95 * @param defaultName the name to be used as the default name displayed with
96 * the prompt.
97 * @throws IllegalArgumentException if <code>prompt</code> is <code>null</code>
98 * or if <code>prompt</code> has a length of <code>0</code>, if
99 * <code>defaultName</code> is <code>null</code>, or if <code>defaultName</code>
100 * has a length of <code>0</code>.
102 public NameCallback(String prompt, String defaultName)
103 throws IllegalArgumentException
105 super();
107 setPrompt(prompt);
108 setDefaultName(defaultName);
111 // Class methods
112 // -------------------------------------------------------------------------
114 // Instance methods
115 // -------------------------------------------------------------------------
118 * Get the prompt.
120 * @return the prompt.
122 public String getPrompt()
124 return prompt;
128 * Get the default name.
130 * @return the default name, or <code>null</code> if this
131 * <code>NameCallback</code> was not instantiated with a
132 * <code>defaultName</code>.
134 public String getDefaultName()
136 return defaultName;
140 * Set the retrieved name.
142 * @param name the retrieved name (which may be <code>null</code>).
143 * @see #getName()
145 public void setName(String name)
147 this.inputName = name;
151 * Get the retrieved name.
153 * @return the retrieved name (which may be <code>null</code>)
154 * @see #setName(String)
156 public String getName()
158 return inputName;
161 private void setPrompt(String prompt) throws IllegalArgumentException
163 if ((prompt == null) || (prompt.length() == 0))
165 throw new IllegalArgumentException("invalid prompt");
167 this.prompt = prompt;
170 private void setDefaultName(String defaultName) throws IllegalArgumentException
172 if ((defaultName == null) || (defaultName.length() == 0))
174 throw new IllegalArgumentException("invalid default name");
176 this.defaultName = defaultName;