AbbreviationMapBuilder class

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

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

Поля (2)

МодификаторыТипИмя
private final Map<String, Value> keys
List var1

Методы (3)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("Cannot have values with the same key in AbbreviationMap: " + var1)
public AbbreviationMap<Value> buildpublic AbbreviationMap<Value> build()
public AbbreviationMap.AbbreviationMapBuilder<Value> putpublic AbbreviationMap.AbbreviationMapBuilder<Value> put(@Nonnull String var1, @Nonnull Value var2)

Исходный код

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

class="kw">import it.unimi.dsi.fastutil.Pair;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import java.util.ArrayList;
class="kw">import java.util.Collections;
class="kw">import java.util.List;
class="kw">import java.util.Locale;
class="kw">import java.util.Map;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class AbbreviationMap<Value> {
   class="kw">private class="kw">final List<Pair<String, Value>> entries;

   class="kw">private AbbreviationMap(@Nonnull List<Pair<String, Value>> var1) {
      this.entries = var1;
   }

   @Nullable
   class="kw">public Value get(@Nonnull String var1) {
      String var2 = var1.toLowerCase(Locale.ROOT);
      Object var3 = null;
      boolean var4 = false;
      Object var5 = null;
      boolean var6 = false;

      for (Pair var8 : this.entries) {
         String var9 = (String)var8.left();
         Object var10 = (Value)var8.right();
         if (var9.equals(var2)) {
            class="kw">return var10;
         }

         if (var9.startsWith(var2)) {
            if (var3 == null) {
               var3 = var10;
            } else if (!var3.equals(var10)) {
               var4 = true;
            }
         }

         if (var9.contains(var2)) {
            if (var5 == null) {
               var5 = var10;
            } else if (!var5.equals(var10)) {
               var6 = true;
            }
         }
      }

      if (var3 != null && !var4) {
         class="kw">return var3;
      } else {
         class="kw">return var5 != null && !var6 ? var5 : null;
      }
   }

   @Nonnull
   class="kw">public class="kw">static <V> AbbreviationMap.AbbreviationMapBuilder<V> create() {
      class="kw">return new AbbreviationMap.AbbreviationMapBuilder();
   }

   class="kw">public class="kw">static class AbbreviationMapBuilder<Value> {
      class="kw">private class="kw">final Map<String, Value> keys = new Object2ObjectOpenHashMap();

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

      @Nonnull
      class="kw">public AbbreviationMap.AbbreviationMapBuilder<Value> put(@Nonnull String var1, @Nonnull Value var2) {
         if (this.keys.putIfAbsent(var1.toLowerCase(Locale.ROOT), var2) != null) {
            throw new IllegalArgumentException("Cannot have values with the same key in AbbreviationMap: " + var1);
         } else {
            class="kw">return this;
         }
      }

      @Nonnull
      class="kw">public AbbreviationMap<Value> build() {
         List var1 = new ArrayList<>(this.keys.size());

         for (Entry var3 : this.keys.entrySet()) {
            var1.add(Pair.of(var3.getKey(), var3.getValue()));
         }

         class="kw">return new AbbreviationMap<>(Collections.unmodifiableList(var1));
      }
   }
}