SuggestionUtil class

Пакет: com.hypixel.hytale.server.core.command.system.suggestion

Файл: com/hypixel/hytale/server/core/command/system/suggestion/SuggestionUtil.java

Поля (9)

МодификаторыТипИмя
return
return
String var11
Comparator var14
String var4
int var5
List var6
List var7
List var8

Методы (9)

МодификаторыВозвратСигнатура
for for(String var13 : var0)
for for(String var10 : var0)
for for(String var4 : var0)
static void suggestAllvoid suggestAll(@Nonnull List<String> var0, @Nonnull UnaryOperator<String> var1, @Nonnull SuggestionResult var2)
abstract suggestAll suggestAll(var6, var2, var3)
abstract suggestAll suggestAll(var7, var2, var3)
abstract suggestAll suggestAll(var8, var2, var3)
static void suggestFilteredvoid suggestFiltered(@Nonnull Iterable<String> var0, @Nonnull String var1, @Nonnull SuggestionResult var2)
static void suggestFilteredvoid suggestFiltered(@Nonnull Iterable<String> var0, @Nonnull String var1, @Nonnull UnaryOperator<String> var2, @Nonnull SuggestionResult var3)

Исходный код

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

class="kw">import com.hypixel.hytale.common.util.StringCompareUtil;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.Comparator;
class="kw">import java.util.List;
class="kw">import java.util.Locale;
class="kw">import java.util.function.UnaryOperator;
class="kw">import javax.annotation.Nonnull;

class="kw">public class="kw">final class SuggestionUtil {
   class="kw">private SuggestionUtil() {
   }

   class="kw">public class="kw">static void suggestFiltered(@Nonnull Iterable<String> var0, @Nonnull String var1, @Nonnull SuggestionResult var2) {
      suggestFiltered(var0, var1, UnaryOperator.identity(), var2);
   }

   class="kw">public class="kw">static void suggestFiltered(@Nonnull Iterable<String> var0, @Nonnull String var1, @Nonnull UnaryOperator<String> var2, @Nonnull SuggestionResult var3) {
      if (var1.isEmpty()) {
         for (String var13 : var0) {
            if (var3.isFull()) {
               var3.markTruncated();
               class="kw">return;
            }

            var3.suggest(var2.apply(var13));
         }
      } else {
         String var4 = var1.toLowerCase(Locale.ENGLISH);
         int var5 = var1.length();
         List var6 = new ObjectArrayList();
         List var7 = new ObjectArrayList();
         List var8 = new ObjectArrayList();

         for (String var10 : var0) {
            String var11 = var10.toLowerCase(Locale.ENGLISH);
            if (var11.startsWith(var4)) {
               var6.add(var10);
            } else if (var11.contains(var4)) {
               var7.add(var10);
            } else if (StringCompareUtil.getFuzzyDistance(var10, var1, Locale.ENGLISH) >= var5) {
               var8.add(var10);
            }
         }

         Comparator var14 = Comparator.comparingInt(String::length).thenComparing(Comparator.naturalOrder());
         var6.sort(var14);
         var7.sort(var14);
         var8.sort(Comparator.<String>comparingInt(var1x -> StringCompareUtil.getFuzzyDistance(var1x, var1, Locale.ENGLISH)).reversed());
         suggestAll(var6, var2, var3);
         suggestAll(var7, var2, var3);
         suggestAll(var8, var2, var3);
      }
   }

   class="kw">private class="kw">static void suggestAll(@Nonnull List<String> var0, @Nonnull UnaryOperator<String> var1, @Nonnull SuggestionResult var2) {
      for (String var4 : var0) {
         if (var2.isFull()) {
            var2.markTruncated();
            class="kw">return;
         }

         var2.suggest(var1.apply(var4));
      }
   }
}