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));
}
}
}