MessageUtil class
Пакет: com.hypixel.hytale.server.core.util
Файл: com/hypixel/hytale/server/core/util/MessageUtil.java
Поля (118)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
String[] |
ICU_PLURAL_KEYWORDS |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
Instant |
instantx |
|
AttributedStyle |
var1 |
|
|
var1 |
|
Color |
var1 |
|
StringBuilder |
var1 |
|
HashMap |
var1 |
|
int |
var1 |
|
int |
var1 |
|
int |
var1 |
|
HashMap |
var1 |
|
int |
var10 |
|
Instant |
var10 |
|
yield |
var10 |
|
int |
var11 |
|
int |
var12 |
|
int |
var13 |
|
int |
var14 |
|
int |
var15 |
|
String |
var16 |
|
String |
var17 |
|
|
var17 |
|
int |
var18 |
|
int |
var19 |
|
String |
var2 |
|
int |
var2 |
|
char |
var2 |
|
I18nModule |
var2 |
|
int |
var2 |
|
String |
var2 |
|
int |
var2 |
|
int |
var2 |
|
int |
var2 |
|
int |
var2 |
|
|
var2 |
|
int |
var20 |
|
int |
var21 |
|
Map |
var24 |
|
String |
var25 |
|
String |
var26 |
|
|
var26 |
|
|
var26 |
|
|
var26 |
|
AttributedStringBuilder |
var3 |
|
String |
var3 |
|
FormattedMessage |
var3 |
|
FormattedMessage |
var3 |
|
int |
var3 |
|
int |
var3 |
|
int |
var3 |
|
int |
var3 |
|
int |
var3 |
|
int |
var3 |
|
int |
var3 |
|
int |
var3 |
|
Object |
var3 |
|
yield |
var3 |
|
String |
var33 |
|
|
var33 |
|
int |
var34 |
|
ParamValue |
var35 |
|
int |
var36 |
|
FormattedMessage |
var37 |
|
int |
var38 |
|
String |
var39 |
|
|
var39 |
|
|
var39 |
|
|
var39 |
|
|
var39 |
|
|
var39 |
|
|
var39 |
|
|
var39 |
|
|
var39 |
|
|
var39 |
|
|
var39 |
|
|
var39 |
|
|
var39 |
|
StringBuilder |
var4 |
|
int |
var4 |
|
Instant |
var42 |
|
Map |
var44 |
|
DateTimeFormatter |
var49 |
|
int |
var5 |
|
|
var5 |
|
|
var5 |
|
|
var5 |
|
String |
var5 |
|
DateTimeFormatter |
var50 |
|
int |
var51 |
|
String |
var55 |
|
String |
var59 |
|
|
var59 |
|
|
var59 |
|
|
var59 |
|
|
var6 |
|
String |
var6 |
|
int |
var6 |
|
char |
var7 |
|
int |
var7 |
|
int |
var7 |
|
int |
var8 |
|
int |
var8 |
|
Object |
var8 |
|
yield |
var8 |
|
int |
var9 |
|
int |
var9 |
|
Instant |
var9 |
|
|
var9 |
|
yield |
var9 |
Методы (61)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("text cannot be null") |
static |
void |
appendFormattedMessagevoid appendFormattedMessage(@Nonnull StringBuilder var0, @Nullable FormattedMessage var1) |
abstract |
|
appendFormattedMessage appendFormattedMessage(var1, var0) |
abstract |
|
appendFormattedMessage appendFormattedMessage(var0, var5) |
abstract |
|
appendFormattedMessage appendFormattedMessage(var4, var37) |
static |
boolean |
containsControlCharactersboolean containsControlCharacters(@Nonnull String var0) |
static |
int |
findMatchingBraceint findMatchingBrace(@Nonnull String var0, int var1) |
|
|
for for(FormattedMessage var5 : var1.children) |
|
|
for for(int var6 = 0; var6 < var3; var6++) |
|
|
for for(int var4 = var1; var4 < var3; var4++) |
|
|
for for(String var5 : ICU_PLURAL_KEYWORDS) |
abstract |
|
for for(int var1 = 0; var1 < var0.length() |
static |
AttributedStyle |
hexToStyleAttributedStyle hexToStyle(@Nonnull String var0) |
|
|
if if(var2 != null) |
|
|
if if(var1 == null) |
|
|
if if(var2 < ' ') |
|
|
if if(var2 == 127) |
|
|
if if(var2 >= 128 && var2 <= 159) |
|
|
if if(var0 == null) |
|
|
if if(var1 != null) |
|
|
if if(var1.rawText != null) |
|
|
if if(var1.children != null) |
|
|
if if(var0 == null) |
|
|
if if(var1 == null && var2 == null) |
|
|
if if(var7 == '{') |
|
|
if if(var6 > var5) |
|
|
if if(var8 >= 0) |
|
|
if if(var6 > var5) |
|
|
if if(var10 >= 0 && var10 < var8) |
|
|
if if(var21 > 0) |
|
|
if if(var11 >= 0 && var11 < var8) |
|
|
if if(var38 > 0) |
|
|
if if(var37 != null) |
|
|
if if(var35 instanceof StringParamValue var47) |
|
|
if if(var35 instanceof StringParamValue var46) |
|
|
if if(var33 != null) |
|
|
if if(instantx != null) |
|
|
if if(var42 != null) |
|
|
if if(var33 != null) |
|
|
if if(var17 == null) |
|
|
if if(var6 > var5) |
|
|
if if(var5 < var3) |
|
|
if if(--var2 == 0) |
|
|
if if(var7 >= 0) |
|
|
if if(var9 > var8 + 1) |
|
|
if if(var2 == 1 && var3 != 11) |
|
|
if if(var0 == 1) |
|
|
if if(var2 == 1 && var3 != 11) |
|
|
if if(var2 >= var3) |
|
|
if if(var2 == var4) |
|
|
if if(var7 < 0) |
|
|
if if(var7 > var6 + 1) |
abstract |
|
sendSuccessReply sendSuccessReply(var0, var1, null) |
|
|
switch switch(var17) |
|
|
switch switch(var33) |
|
return |
switchreturn switch(var2) |
|
return |
switchreturn switch(var0) |
static |
AttributedString |
toAnsiStringAttributedString toAnsiString(@Nonnull Message var0) |
static |
int |
trimEndint trimEnd(@Nonnull String var0, int var1, int var2) |
static |
int |
trimStartint trimStart(@Nonnull String var0, int var1, int var2) |
|
|
while while(var2 < var3) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.util;
class="kw">import com.hypixel.hytale.protocol.BoolParamValue;
class="kw">import com.hypixel.hytale.protocol.Color;
class="kw">import com.hypixel.hytale.protocol.DoubleParamValue;
class="kw">import com.hypixel.hytale.protocol.FormattedMessage;
class="kw">import com.hypixel.hytale.protocol.IntParamValue;
class="kw">import com.hypixel.hytale.protocol.LongParamValue;
class="kw">import com.hypixel.hytale.protocol.ParamValue;
class="kw">import com.hypixel.hytale.protocol.StringParamValue;
class="kw">import com.hypixel.hytale.protocol.packets.asseteditor.FailureReply;
class="kw">import com.hypixel.hytale.protocol.packets.asseteditor.SuccessReply;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.util.ColorParseUtil;
class="kw">import com.hypixel.hytale.server.core.modules.i18n.I18nModule;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import java.time.Instant;
class="kw">import java.time.ZoneId;
class="kw">import java.time.format.DateTimeFormatter;
class="kw">import java.time.format.DateTimeParseException;
class="kw">import java.time.format.FormatStyle;
class="kw">import java.util.HashMap;
class="kw">import java.util.Locale;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.jline.utils.AttributedString;
class="kw">import org.jline.utils.AttributedStringBuilder;
class="kw">import org.jline.utils.AttributedStyle;
class="kw">import org.jline.utils.Colors;
class="kw">public class MessageUtil {
class="kw">private class="kw">static class="kw">final String[] ICU_PLURAL_KEYWORDS = new String[]{"zero", "one", "two", "few", "many", "other"};
class="kw">public MessageUtil() {
}
class="kw">public class="kw">static AttributedString toAnsiString(@Nonnull Message var0) {
AttributedStyle var1 = AttributedStyle.DEFAULT;
String var2 = var0.getColor();
if (var2 != null) {
var1 = hexToStyle(var2);
}
AttributedStringBuilder var3 = new AttributedStringBuilder();
var3.style(var1).append(var0.getAnsiMessage());
for (Message var6 : var0.getChildren()) {
var3.append(toAnsiString(var6));
}
class="kw">return var3.toAttributedString();
}
class="kw">public class="kw">static AttributedStyle hexToStyle(@Nonnull String var0) {
Color var1 = ColorParseUtil.parseColor(var0);
if (var1 == null) {
class="kw">return AttributedStyle.DEFAULT;
}
int var2 = Colors.roundRgbColor(var1.red & 255, var1.green & 255, var1.blue & 255, 256);
class="kw">return AttributedStyle.DEFAULT.foreground(var2);
}
class="kw">public class="kw">static boolean containsControlCharacters(@Nonnull String var0) {
for (int var1 = 0; var1 < var0.length(); var1++) {
char var2 = var0.charAt(var1);
if (var2 < ' ') {
class="kw">return true;
}
if (var2 == 127) {
class="kw">return true;
}
if (var2 >= 128 && var2 <= 159) {
class="kw">return true;
}
}
class="kw">return false;
}
@Nullable
class="kw">public class="kw">static String formatMessageToPlainString(@Nullable FormattedMessage var0) {
if (var0 == null) {
class="kw">return null;
}
StringBuilder var1 = new StringBuilder();
appendFormattedMessage(var1, var0);
class="kw">return var1.toString();
}
class="kw">private class="kw">static void appendFormattedMessage(@Nonnull StringBuilder var0, @Nullable FormattedMessage var1) {
if (var1 != null) {
if (var1.rawText != null) {
var0.append(var1.rawText);
} else if (var1.messageId != null) {
try {
I18nModule var2 = I18nModule.get();
String var3 = var2 != null ? var2.getMessage("en-US", var1.messageId) : null;
var0.append(var3 != null ? formatText(var3, var1.params, var1.messageParams) : var1.messageId);
} catch (Exception var6) {
var0.append(var1.messageId);
}
}
if (var1.children != null) {
for (FormattedMessage var5 : var1.children) {
appendFormattedMessage(var0, var5);
}
}
}
}
@Deprecated
class="kw">public class="kw">static void sendSuccessReply(@Nonnull PlayerRef var0, int var1) {
sendSuccessReply(var0, var1, null);
}
@Deprecated
class="kw">public class="kw">static void sendSuccessReply(@Nonnull PlayerRef var0, int var1, @Nullable Message var2) {
FormattedMessage var3 = var2 != null ? var2.getFormattedMessage() : null;
var0.getPacketHandler().writeNoCache(new SuccessReply(var1, var3));
}
@Deprecated
class="kw">public class="kw">static void sendFailureReply(@Nonnull PlayerRef var0, int var1, @Nonnull Message var2) {
FormattedMessage var3 = var2 != null ? var2.getFormattedMessage() : null;
var0.getPacketHandler().writeNoCache(new FailureReply(var1, var3));
}
@Nonnull
class="kw">public class="kw">static String formatText(String var0, @Nullable Map<String, ParamValue> var1, @Nullable Map<String, FormattedMessage> var2) {
if (var0 == null) {
throw new IllegalArgumentException("text cannot be null");
}
if (var1 == null && var2 == null) {
class="kw">return var0;
}
int var3 = var0.length();
StringBuilder var4 = new StringBuilder(var0.length());
int var5 = 0;
for (int var6 = 0; var6 < var3; var6++) {
char var7 = var0.charAt(var6);
if (var7 == '{') {
if (var6 + 1 < var3 && var0.charAt(var6 + 1) == '{') {
if (var6 > var5) {
var4.append(var0, var5, var6);
}
var4.append('{');
var5 = ++var6 + 1;
} else {
int var8 = findMatchingBrace(var0, var6);
if (var8 >= 0) {
if (var6 > var5) {
var4.append(var0, var5, var6);
}
int var9 = var6 + 1;
int var10 = var0.indexOf(44, var9, var8);
int var11 = var10 >= 0 ? var0.indexOf(44, var10 + 1, var8) : -1;
int var12 = var9;
int var13 = var10 >= 0 && var10 < var8 ? var10 : var8;
int var14 = trimStart(var0, var12, var13 - 1);
int var15 = trimEnd(var0, var14, var13 - 1);
String var16 = var15 > 0 ? var0.substring(var14, var14 + var15) : "";
String var17 = null;
if (var10 >= 0 && var10 < var8) {
int var18 = var10 + 1;
int var19 = var11 >= 0 ? var11 : var8;
int var20 = trimStart(var0, var18, var19 - 1);
int var21 = trimEnd(var0, var20, var19 - 1);
if (var21 > 0) {
var17 = var0.substring(var20, var20 + var21);
}
}
String var33 = null;
if (var11 >= 0 && var11 < var8) {
int var34 = var11 + 1;
int var36 = trimStart(var0, var34, var8 - 1);
int var38 = trimEnd(var0, var36, var8 - 1);
if (var38 > 0) {
var33 = var0.substring(var36, var36 + var38);
}
}
ParamValue var35 = var1 != null ? var1.get(var16) : null;
FormattedMessage var37 = var2 != null ? var2.get(var16) : null;
if (var37 != null) {
appendFormattedMessage(var4, var37);
} else if (var35 != null) {
String var39;
var39 = "";
label173:
class="kw">switch (var17) {
case "upper":
if (var35 class="kw">instanceof StringParamValue var47) {
var39 = var47.value.toUpperCase(Locale.ROOT);
}
break;
case "lower":
if (var35 class="kw">instanceof StringParamValue var46) {
var39 = var46.value.toLowerCase(Locale.ROOT);
}
break;
case "number":
class="kw">switch (var33) {
case "integer":
var39 = class="kw">switch (var35) {
case StringParamValue var63 -> var63.value;
case BoolParamValue var66 -> var66.value ? "1" : "0";
case DoubleParamValue var68 -> Integer.toString((int)var68.value);
case IntParamValue var70 -> Integer.toString(var70.value);
case LongParamValue var32 -> Long.toString(var32.value);
class="kw">default -> "";
};
break label173;
case "decimal":
case null:
class="kw">default:
var39 = class="kw">switch (var35) {
case StringParamValue var64 -> var64.value;
case BoolParamValue var67 -> var67.value ? "1" : "0";
case DoubleParamValue var69 -> Double.toString((int)var69.value);
case IntParamValue var71 -> Integer.toString(var71.value);
case LongParamValue var72 -> Long.toString(var72.value);
class="kw">default -> "";
};
break label173;
}
case "plural":
if (var33 != null) {
Map var44 = parsePluralOptions(var33);
int var51 = class="kw">switch (var35) {
case IntParamValue var28 -> var28.value;
case LongParamValue var29 -> (int)var29.value;
case DoubleParamValue var30 -> (int)var30.value;
case StringParamValue var31 -> Integer.parseInt(var31.value);
class="kw">default -> 0;
};
String var55 = getPluralCategory(var51, "en-US");
String var59;
if (var44.containsKey(var55)) {
var59 = var44.get(var55);
} else if (var44.containsKey("other")) {
var59 = var44.get("other");
} else {
var59 = var44.isEmpty() ? "" : var44.values().iterator().next();
}
var39 = formatText(var59, var1, var2);
}
break;
case "date":
Instant instantx = parseDateTime(var35);
if (instantx != null) {
DateTimeFormatter var50 = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT).withLocale(Locale.getDefault());
var39 = var50.format(instantx.atZone(ZoneId.systemDefault()));
} else {
var39 = "";
}
break;
case "time":
Instant var42 = parseDateTime(var35);
if (var42 != null) {
DateTimeFormatter var49 = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT).withLocale(Locale.getDefault());
var39 = var49.format(var42.atZone(ZoneId.systemDefault()));
} else {
var39 = "";
}
break;
case "select":
if (var33 != null) {
Map var24 = parseSelectOptions(var33);
String var25 = var35.toString();
String var26;
if (var24.containsKey(var25)) {
var26 = var24.get(var25);
} else if (var24.containsKey("other")) {
var26 = var24.get("other");
} else {
var26 = var24.isEmpty() ? "" : var24.values().iterator().next();
}
var39 = formatText(var26, var1, var2);
}
case null:
}
if (var17 == null) {
var39 = class="kw">switch (var35) {
case StringParamValue var48 -> var48.value;
case BoolParamValue var53 -> Boolean.toString(var53.value);
case DoubleParamValue var58 -> Double.toString(var58.value);
case IntParamValue var62 -> Integer.toString(var62.value);
case LongParamValue var65 -> Long.toString(var65.value);
class="kw">default -> "";
};
}
var4.append(var39);
} else {
var4.append(var0, var6, var8);
}
var6 = var8;
var5 = var8 + 1;
}
}
} else if (var7 == '}' && var6 + 1 < var3 && var0.charAt(var6 + 1) == '}') {
if (var6 > var5) {
var4.append(var0, var5, var6);
}
var4.append('}');
var5 = ++var6 + 1;
}
}
if (var5 < var3) {
var4.append(var0, var5, var3);
}
class="kw">return var4.toString();
}
class="kw">private class="kw">static int findMatchingBrace(@Nonnull String var0, int var1) {
int var2 = 0;
int var3 = var0.length();
for (int var4 = var1; var4 < var3; var4++) {
if (var0.charAt(var4) == '{') {
var2++;
} else if (var0.charAt(var4) == '}') {
if (--var2 == 0) {
class="kw">return var4;
}
}
}
class="kw">return -1;
}
class="kw">private class="kw">static int trimStart(@Nonnull String var0, int var1, int var2) {
int var3 = var1;
while (var3 <= var2 && Character.isWhitespace(var0.charAt(var3))) {
var3++;
}
class="kw">return var3;
}
class="kw">private class="kw">static int trimEnd(@Nonnull String var0, int var1, int var2) {
int var3 = var1;
while (var2 >= var3 && Character.isWhitespace(var0.charAt(var3))) {
var2--;
}
class="kw">return var2 >= var3 ? var2 - var3 + 1 : 0;
}
@Nonnull
class="kw">private class="kw">static Map<String, String> parsePluralOptions(@Nonnull String var0) {
HashMap var1 = new HashMap<>();
for (String var5 : ICU_PLURAL_KEYWORDS) {
String var6 = var5 + " {";
int var7 = var0.indexOf(var6);
if (var7 >= 0) {
int var8 = var7 + var5.length() + 1;
int var9 = findMatchingBrace(var0, var8);
if (var9 > var8 + 1) {
var1.put(var5, var0.substring(var8 + 1, var9));
}
}
}
class="kw">return var1;
}
@Nonnull
class="kw">private class="kw">static String getPluralCategory(int var0, @Nonnull String var1) {
String var2 = var1.contains("-") ? var1.substring(0, var1.indexOf(45)) : var1;
class="kw">return class="kw">switch (var2) {
case "en" -> getEnglishPluralCategory(var0);
case "fr" -> getFrenchPluralCategory(var0);
case "de" -> getGermanPluralCategory(var0);
case "pt" -> !var1.equals("pt-BR") && !var1.equals("pt_BR") ? getPortuguesePluralCategory(var0) : getPortugueseBrazilianPluralCategory(var0);
case "ru" -> getRussianPluralCategory(var0);
case "es" -> getSpanishPluralCategory(var0);
case "pl" -> getPolishPluralCategory(var0);
case "tr" -> getTurkishPluralCategory(var0);
case "uk" -> getUkrainianPluralCategory(var0);
case "it" -> getItalianPluralCategory(var0);
case "nl" -> getDutchPluralCategory(var0);
case "da" -> getDanishPluralCategory(var0);
case "fi" -> getFinnishPluralCategory(var0);
case "no", "nb", "nn" -> getNorwegianPluralCategory(var0);
case "zh" -> getChinesePluralCategory(var0);
case "ja" -> getJapanesePluralCategory(var0);
case "ko" -> getKoreanPluralCategory(var0);
class="kw">default -> getEnglishPluralCategory(var0);
};
}
@Nonnull
class="kw">private class="kw">static String getEnglishPluralCategory(int var0) {
class="kw">return var0 == 1 ? "one" : "other";
}
@Nonnull
class="kw">private class="kw">static String getFrenchPluralCategory(int var0) {
class="kw">return var0 != 0 && var0 != 1 ? "other" : "one";
}
@Nonnull
class="kw">private class="kw">static String getGermanPluralCategory(int var0) {
class="kw">return var0 == 1 ? "one" : "other";
}
@Nonnull
class="kw">private class="kw">static String getPortuguesePluralCategory(int var0) {
class="kw">return var0 == 1 ? "one" : "other";
}
@Nonnull
class="kw">private class="kw">static String getPortugueseBrazilianPluralCategory(int var0) {
class="kw">return var0 != 0 && var0 != 1 ? "other" : "one";
}
@Nonnull
class="kw">private class="kw">static String getRussianPluralCategory(int var0) {
int var1 = Math.abs(var0);
int var2 = var1 % 10;
int var3 = var1 % 100;
if (var2 == 1 && var3 != 11) {
class="kw">return "one";
} else if (var2 < 2 || var2 > 4 || var3 >= 12 && var3 <= 14) {
class="kw">return var2 != 0 && (var2 < 5 || var2 > 9) && (var3 < 11 || var3 > 14) ? "other" : "many";
} else {
class="kw">return "few";
}
}
@Nonnull
class="kw">private class="kw">static String getSpanishPluralCategory(int var0) {
class="kw">return var0 == 1 ? "one" : "other";
}
@Nonnull
class="kw">private class="kw">static String getPolishPluralCategory(int var0) {
int var1 = Math.abs(var0);
int var2 = var1 % 10;
int var3 = var1 % 100;
if (var0 == 1) {
class="kw">return "one";
} else if (var2 < 2 || var2 > 4 || var3 >= 12 && var3 <= 14) {
class="kw">return var2 != 0 && var2 != 1 && (var2 < 5 || var2 > 9) && (var3 < 12 || var3 > 14) ? "other" : "many";
} else {
class="kw">return "few";
}
}
@Nonnull
class="kw">private class="kw">static String getTurkishPluralCategory(int var0) {
class="kw">return var0 == 1 ? "one" : "other";
}
@Nonnull
class="kw">private class="kw">static String getUkrainianPluralCategory(int var0) {
int var1 = Math.abs(var0);
int var2 = var1 % 10;
int var3 = var1 % 100;
if (var2 == 1 && var3 != 11) {
class="kw">return "one";
} else if (var2 < 2 || var2 > 4 || var3 >= 12 && var3 <= 14) {
class="kw">return var2 != 0 && (var2 < 5 || var2 > 9) && (var3 < 11 || var3 > 14) ? "other" : "many";
} else {
class="kw">return "few";
}
}
@Nonnull
class="kw">private class="kw">static String getItalianPluralCategory(int var0) {
class="kw">return var0 == 1 ? "one" : "other";
}
@Nonnull
class="kw">private class="kw">static String getDutchPluralCategory(int var0) {
class="kw">return var0 == 1 ? "one" : "other";
}
@Nonnull
class="kw">private class="kw">static String getDanishPluralCategory(int var0) {
class="kw">return var0 == 1 ? "one" : "other";
}
@Nonnull
class="kw">private class="kw">static String getFinnishPluralCategory(int var0) {
class="kw">return var0 == 1 ? "one" : "other";
}
@Nonnull
class="kw">private class="kw">static String getNorwegianPluralCategory(int var0) {
class="kw">return var0 == 1 ? "one" : "other";
}
@Nonnull
class="kw">private class="kw">static String getChinesePluralCategory(int var0) {
class="kw">return "other";
}
@Nonnull
class="kw">private class="kw">static String getJapanesePluralCategory(int var0) {
class="kw">return "other";
}
@Nonnull
class="kw">private class="kw">static String getKoreanPluralCategory(int var0) {
class="kw">return "other";
}
@Nonnull
class="kw">private class="kw">static Map<String, String> parseSelectOptions(@Nonnull String var0) {
HashMap var1 = new HashMap<>();
int var2 = 0;
int var3 = var0.length();
while (var2 < var3) {
while (var2 < var3 && Character.isWhitespace(var0.charAt(var2))) {
var2++;
}
if (var2 >= var3) {
break;
}
int var4 = var2;
while (var2 < var3 && !Character.isWhitespace(var0.charAt(var2)) && var0.charAt(var2) != '{') {
var2++;
}
if (var2 == var4) {
break;
}
String var5 = var0.substring(var4, var2);
while (var2 < var3 && Character.isWhitespace(var0.charAt(var2))) {
var2++;
}
if (var2 >= var3 || var0.charAt(var2) != '{') {
break;
}
int var6 = var2;
int var7 = findMatchingBrace(var0, var6);
if (var7 < 0) {
break;
}
if (var7 > var6 + 1) {
var1.put(var5, var0.substring(var6 + 1, var7));
} else {
var1.put(var5, "");
}
var2 = var7 + 1;
}
class="kw">return var1;
}
@Nullable
class="kw">private class="kw">static Instant parseDateTime(@Nonnull ParamValue var0) {
class="kw">return class="kw">switch (var0) {
case LongParamValue var4 -> {
Instant var10 = Instant.ofEpochMilli(var4.value);
yield var10;
}
case StringParamValue var5 -> {
Instant var9;
try {
var9 = Instant.parse(var5.value);
} catch (DateTimeParseException var7) {
Object var8 = null;
yield var8;
}
yield var9;
}
class="kw">default -> {
Object var3 = null;
yield var3;
}
};
}
}