Result class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.assets

Файл: com/hypixel/hytale/builtin/hytalegenerator/assets/ThreadBridge.java

Поля (2)

МодификаторыТипИмя
public final boolean isAquired
public final T value

Исходный код

Показать/скрыть
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;
      }
   }
}