2020-10-11 16:27:57 +02:00
|
|
|
package it.tdlight.common.utils;
|
2020-04-19 16:32:49 +02:00
|
|
|
|
2021-10-24 00:12:01 +02:00
|
|
|
import java.io.Console;
|
|
|
|
import java.util.Scanner;
|
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
2021-09-27 19:27:13 +02:00
|
|
|
public final class ScannerUtils {
|
|
|
|
|
2021-10-24 00:12:01 +02:00
|
|
|
private static final Object lock = new Object();
|
|
|
|
private static Scanner SCANNER = null;
|
|
|
|
|
2020-04-19 16:32:49 +02:00
|
|
|
public static String askParameter(String displayName, String question) {
|
2021-10-24 00:12:01 +02:00
|
|
|
Console console = System.console();
|
|
|
|
if (console != null) {
|
|
|
|
return console.readLine("[%s] %s", displayName, question);
|
|
|
|
} else {
|
|
|
|
synchronized (lock) {
|
|
|
|
if (SCANNER == null) {
|
|
|
|
SCANNER = new Scanner(System.in);
|
|
|
|
Runtime.getRuntime().addShutdownHook(new Thread(() -> SCANNER.close()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
System.out.printf("[%s] %s: ", displayName, question);
|
|
|
|
return SCANNER.nextLine();
|
|
|
|
}
|
2020-04-19 16:32:49 +02:00
|
|
|
}
|
|
|
|
}
|