TextIoUtils.java
package io.extact.rms.client.console.ui.textio;
import static io.extact.rms.client.console.ui.ClientConstants.*;
import org.beryx.textio.EnumInputReader;
import org.beryx.textio.TextIoFactory;
import io.extact.rms.client.api.dto.UserAccountClientDto;
import io.extact.rms.client.api.exception.BusinessFlowClientException;
public class TextIoUtils {
public static void printScreenHeader(UserAccountClientDto loginUser, String screenName) {
var msg = System.lineSeparator()
+ "===================================================" + System.lineSeparator()
+ "レンタル予約システム - %s" + System.lineSeparator()
+ "===================================================" + System.lineSeparator()
+ "ログイン:%s" + System.lineSeparator()
+ System.lineSeparator();
var terminal = TextIoFactory.getTextIO().getTextTerminal();
terminal.printf(msg, screenName, loginUser.getUserName());
}
public static void waitPressEnter() {
TextIoFactory.getTextIO().newStringInputReader()
.withDefaultValue("ENTER")
.read("Please press enter.");
}
public static void printServerError(BusinessFlowClientException e) {
TextIoFactory.getTextTerminal().executeWithPropertiesConfigurator(
props -> props.setPromptColor("red"),
t -> t.println(e.getMessage() + System.lineSeparator())
);
}
public static void printErrorInformation(String msg) {
TextIoFactory.getTextTerminal().executeWithPropertiesConfigurator(
props -> props.setPromptColor("red"),
t -> t.println(msg + System.lineSeparator())
);
}
public static void printWarningInformation(String msg) {
TextIoFactory.getTextTerminal().executeWithPropertiesConfigurator(
props -> props.setPromptColor("yellow"),
t -> t.println(msg + System.lineSeparator())
);
}
public static void blankLine() {
TextIoFactory.getTextTerminal().println();
}
public static void println(String msg) {
TextIoFactory.getTextTerminal().println(msg);
}
public static void printf(String format, Object... args) {
TextIoFactory.getTextTerminal().printf(format, args);
}
public static RmsStringInputReader newStringInputReader() {
return new RmsStringInputReader(TextIoFactory.getTextIO().getTextTerminal());
}
public static RmsIntInputReader newIntInputReader() {
return new RmsIntInputReader(TextIoFactory.getTextIO().getTextTerminal());
}
public static LocalDateInputReader newLocalDateReader() {
return new LocalDateInputReader(TextIoFactory.getTextIO().getTextTerminal());
}
public static LocalDateTimeInputReader newLocalDateTimeReader() {
return new LocalDateTimeInputReader(TextIoFactory.getTextIO().getTextTerminal());
}
public static <T extends Enum<T>> EnumInputReader<T> newEnumInputReader(Class<T> enumClass) {
return new EnumInputReader<>(TextIoFactory::getTextTerminal, enumClass);
}
public static boolean isBreak(String input) {
return input != null && input.equals(SCREEN_BREAK_KEY);
}
public static boolean isBreak(int input) {
return input == SCREEN_BREAK_VALUE;
}
}