generated from java-cli-apps/basic-java-23-quickstart
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLanguage.java
More file actions
30 lines (23 loc) · 895 Bytes
/
Language.java
File metadata and controls
30 lines (23 loc) · 895 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import module java.base;
enum Language {
French("Bonjour", new int[]{0x1F1EB, 0x1F1F7}),
English("Hello", new int[]{0x1F1EC, 0x1F1E7});
private final String message;
private final int[] emoji;
Language(String message, int[] emoji) {
this.message = message;
this.emoji = emoji;
}
String getGreeting() {
return "%s %s%s".formatted(message, Character.toString(emoji[0]), Character.toString(emoji[1]));
}
static Optional<Language> fromString(String language) {
return Arrays.stream(values())
.filter(current_language -> current_language.name().equalsIgnoreCase(language))
.findFirst();
}
static void validate(String language) {
fromString(language)
.orElseThrow(() -> new IllegalArgumentException("Unknown language provided: %s".formatted(language)));
}
}