1d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/*
2d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *  Licensed to the Apache Software Foundation (ASF) under one or more
3d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *  contributor license agreements.  See the NOTICE file distributed with
4d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *  this work for additional information regarding copyright ownership.
5d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *  The ASF licenses this file to You under the Apache License, Version 2.0
6d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *  (the "License"); you may not use this file except in compliance with
7d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *  the License.  You may obtain a copy of the License at
8d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *
9d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *     http://www.apache.org/licenses/LICENSE-2.0
10d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *
11d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *  Unless required by applicable law or agreed to in writing, software
12d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *  distributed under the License is distributed on an "AS IS" BASIS,
13d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *  See the License for the specific language governing permissions and
15d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *  limitations under the License.
16d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */
17d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
18d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpackage org.apache.harmony.javax.security.auth.callback;
19d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
20d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport java.io.Serializable;
21d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
22d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
23d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
24d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic class NameCallback implements Callback, Serializable {
25d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
26d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    private static final long serialVersionUID = 3770938795909392253L;
27d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
28d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    private String prompt;
29d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
30d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    private String defaultName;
31d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
32d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    private String inputName;
33d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
34d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    private void setPrompt(String prompt) {
35d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        if (prompt == null || prompt.length() == 0) {
36d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen            throw new IllegalArgumentException("auth.14"); //$NON-NLS-1$
37d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        }
38d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        this.prompt = prompt;
39d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
40d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
41d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    private void setDefaultName(String defaultName) {
42d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        if (defaultName == null || defaultName.length() == 0) {
43d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen            throw new IllegalArgumentException("auth.1E"); //$NON-NLS-1$
44d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        }
45d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        this.defaultName = defaultName;
46d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
47d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
48d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public NameCallback(String prompt) {
49d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        super();
50d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        setPrompt(prompt);
51d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
52d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
53d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public NameCallback(String prompt, String defaultName) {
54d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        super();
55d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        setPrompt(prompt);
56d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        setDefaultName(defaultName);
57d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
58d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
59d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public String getPrompt() {
60d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        return prompt;
61d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
62d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
63d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public String getDefaultName() {
64d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        return defaultName;
65d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
66d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
67d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public void setName(String name) {
68d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        this.inputName = name;
69d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
70d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
71d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    public String getName() {
72d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen        return inputName;
73d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen    }
74d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
75