AbbreviationMap class

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

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

Поля (14)

МодификаторыТипИмя
final List<Pair<String, Value>> entries
private final Map<String, Value> keys
List var1
Object var10
String var2
Object var3
var3
boolean var4
var4
Object var5
var5
boolean var6
var6
String var9

Методы (8)

МодификаторыВозвратСигнатура
public AbbreviationMapBuilderpublic AbbreviationMapBuilder()
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("Cannot have values with the same key in AbbreviationMap: " + var1)
public AbbreviationMap<Value> buildpublic AbbreviationMap<Value> build()
for for(Pair var8 : this.entries)
if if(var3 == null)
if if(var5 == null)
if if(var3 != null && !var4)
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));
      }
   }
}