ThreadBridge class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets
Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/ThreadBridge.java
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
|
public final boolean |
isAquired |
|
public final T |
value |
|
Map |
var3 |
|
Object |
var4 |
|
Map |
var4 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
Resultpublic Result() |
|
public |
Resultpublic Result(@Nonnull T var1) |
public |
void |
aquirevoid aquire() |
|
|
if if(var3 == null) |
public |
<T> void |
put<T> void put(@Nonnull Class<T> var1, @Nonnull String var2, @Nonnull T var3) |
public |
void |
releasevoid release() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.assets;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import java.util.concurrent.Semaphore;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class ThreadBridge {
@Nonnull
class="kw">private class="kw">final Map<Class<?>, Map<String, Object>> typeMap = new HashMap<>();
@Nonnull
class="kw">private class="kw">final Semaphore semaphore = new Semaphore(1);
class="kw">public ThreadBridge() {
}
@Nullable
class="kw">public <T> T get(@Nonnull Class<T> var1, @Nonnull String var2) {
Map var3 = this.typeMap.get(var1);
if (var3 == null) {
class="kw">return null;
}
Object var4 = var3.get(var2);
class="kw">return (T)(var4 == null ? null : var4);
}
class="kw">public <T> void put(@Nonnull Class<T> var1, @Nonnull String var2, @Nonnull T var3) {
Map var4 = this.typeMap.computeIfAbsent(var1, var0 -> new HashMap<>());
var4.put(var2, var3);
}
class="kw">public void aquire() {
this.semaphore.acquireUninterruptibly();
}
class="kw">public void release() {
this.semaphore.release();
}
class="kw">public class="kw">static class Result<T> {
class="kw">public class="kw">final boolean isAquired;
@Nullable
class="kw">public class="kw">final T value;
class="kw">public Result() {
this.isAquired = true;
this.value = null;
}
class="kw">public Result(@Nonnull T var1) {
this.isAquired = false;
this.value = var1;
}
}
}