LangFileParser class

Пакет: com.hypixel.hytale.server.core.modules.i18n.parser

Файл: com/hypixel/hytale/server/core/modules/i18n/parser/LangFileParser.java

Поля (21)

МодификаторыТипИмя
final HytaleLogger LOGGER
String var1
boolean var10
boolean var12
String var13
Map var2
String var3
var3
var3
var3
StringBuilder var4
var4
var4
var4
int var5
String var5
String var6
var6
int var7
String var8
String var9

Методы (12)

МодификаторыВозвратСигнатура
if if(var3 == null)
if if(var7 < 0)
if if(var10)
if if(!var12)
if if(var3 != null)
if if(var5 != null)
static void putvoid put(@Nonnull String var0, int var1, @Nonnull Map<String, String> var2, @Nonnull String var3, @Nonnull StringBuilder var4)
abstract put put(var0, var5, var2, var3, var4)
static void skipvoid skip(@Nonnull String var0, int var1, @Nonnull String var2, @Nonnull String var3)
abstract skip skip(var0, var5, "missing '='", var6)
abstract skip skip(var0, var5, "empty key", var6)
abstract skip skip(var0, var5, "empty value", var6)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.i18n.parser;

class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import java.io.BufferedReader;
class="kw">import java.io.IOException;
class="kw">import java.util.LinkedHashMap;
class="kw">import java.util.Map;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;

class="kw">public class LangFileParser {
   class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();

   class="kw">public LangFileParser() {
   }

   @Nonnull
   class="kw">private class="kw">static String literal(@Nonnull String var0) {
      String var1 = var0.trim();
      class="kw">return var1.length() > 1 && var1.charAt(0) == '"' && var1.charAt(var1.length() - 1) == '"' ? var1.substring(1, var1.length() - 1) : var1;
   }

   @Nonnull
   class="kw">private class="kw">static String escape(@Nonnull StringBuilder var0) {
      class="kw">return var0.toString().replace("\\n", "\n").replace("\\t", "\t");
   }

   @Nonnull
   class="kw">public class="kw">static Map<String, String> parse(@Nonnull String var0, @Nonnull BufferedReader var1) class="kw">throws IOException {
      Map var2 = new LinkedHashMap<>();
      String var3 = null;
      StringBuilder var4 = null;
      int var5 = 0;

      String var6;
      while ((var6 = var1.readLine()) != null) {
         var5++;
         var6 = var6.trim();
         if (!var6.isEmpty() && var6.charAt(0) != '#') {
            if (var3 == null) {
               int var7 = var6.indexOf(61);
               if (var7 < 0) {
                  skip(var0, var5, "missing '='", var6);
               } else {
                  String var8 = var6.substring(0, var7).trim();
                  if (var8.isEmpty()) {
                     skip(var0, var5, "empty key", var6);
                  } else {
                     String var9 = var6.substring(var7 + 1).trim();
                     if (var9.isEmpty()) {
                        skip(var0, var5, "empty value", var6);
                     } else {
                        var3 = var8;
                        var4 = new StringBuilder();
                        boolean var10 = var9.charAt(var9.length() - 1) == '\\';
                        if (var10) {
                           var4.append(var9, 0, var9.length() - 1);
                        } else {
                           var4.append(literal(var9));
                           put(var0, var5, var2, var3, var4);
                           var3 = null;
                           var4 = null;
                        }
                     }
                  }
               }
            } else {
               boolean var12 = var6.charAt(var6.length() - 1) == '\\';
               String var13 = var12 ? var6.substring(0, var6.length() - 1) : var6;
               var4.append(var13.trim());
               if (!var12) {
                  put(var0, var5, var2, var3, var4);
                  var3 = null;
                  var4 = null;
               }
            }
         }
      }

      if (var3 != null) {
         LOGGER.at(Level.WARNING).log("%s:%d: unterminated line continuation for key '%s', keeping the text read so far", var0, var5, var3);
         put(var0, var5, var2, var3, var4);
      }

      class="kw">return var2;
   }

   class="kw">private class="kw">static void put(@Nonnull String var0, int var1, @Nonnull Map<String, String> var2, @Nonnull String var3, @Nonnull StringBuilder var4) {
      String var5 = var2.putIfAbsent(var3, escape(var4));
      if (var5 != null) {
         LOGGER.at(Level.WARNING).log("%s:%d: duplicate translation key '%s', keeping the first definition", var0, var1, var3);
      }
   }

   class="kw">private class="kw">static void skip(@Nonnull String var0, int var1, @Nonnull String var2, @Nonnull String var3) {
      LOGGER.at(Level.WARNING).log("%s:%d: skipped malformed line (%s): %s", var0, var1, var2, var3);
   }
}