dis/02/src/de/dis2017/FormUtil.java

103 lines
2.5 KiB
Java

package de.dis2017;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* Small helper class for forms.
*/
class FormUtil {
/**
* Reads a string from the console.
*
* @param label Label that is shown before the input
* @return read string
*/
static String readString(String label) {
return readString(label, "");
}
/**
* Reads a string from the console.
*
* @param label Label that is shown before the input
* @param defaultValue the default value in case an empty input is provided
* @return read string
*/
static String readString(String label, String defaultValue) {
String ret = null;
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print(label+": ");
ret = stdin.readLine();
ret = ret.isEmpty() ? defaultValue : ret;
} catch (IOException e) {
e.printStackTrace();
}
return ret;
}
/**
* Reads a password from the console.
*
* @return the entered password
*/
static String readPassword() {
String password;
System.out.print("Password: ");
password = String.valueOf(System.console().readPassword());
return password;
}
/**
* Reads a password from the console.
*
* @return the entered password
*/
static String readPassword(String oldPassword) {
String password;
System.out.print("Password: ");
password = String.valueOf(System.console().readPassword());
if(password.equals(""))return oldPassword;
return password;
}
/**
* Reads an integer from the console.
*
* @param label Label that is shown before the input
* @return read integer
*/
static int readInt(String label) {
return readInt(label, -1);
}
/**
* Reads an integer from the console.
*
* @param label Label that is shown before the input
* @param defaultValue the default value
* @return read integer
*/
static int readInt(String label, int defaultValue) {
int ret = 0;
boolean finished = false;
String defaultValueStr = defaultValue == -1 ? "" : String.valueOf(defaultValue);
while(!finished) {
String line = readString(label, defaultValueStr);
try {
ret = Integer.parseInt(line);
finished = true;
} catch (NumberFormatException e) {
System.err.println("Invalid input: Please insert a valid number!");
}
}
return ret;
}
}