Registry class

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

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

Поля (3)

МодификаторыТипИмя
final Object2IntMap<T> objectToId
int var2
var2

Методы (5)

МодификаторыВозвратСигнатура
public void forEachvoid forEach(@Nonnull BiConsumer<Integer, T> var1)
public int getIdOrRegisterint getIdOrRegister(T var1)
public T getObjectT getObject(int var1)
if if(var2 != -1)
public int sizeint size()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator;

class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2IntMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
class="kw">import java.util.ArrayList;
class="kw">import java.util.List;
class="kw">import java.util.function.BiConsumer;
class="kw">import javax.annotation.Nonnull;

class="kw">public class Registry<T> {
   class="kw">private class="kw">final Object2IntMap<T> objectToId = new Object2IntOpenHashMap();
   class="kw">private class="kw">final Int2ObjectMap<T> idToObject = new Int2ObjectOpenHashMap();

   class="kw">public Registry() {
      this.objectToId.defaultReturnValue(-1);
   }

   class="kw">public int getIdOrRegister(T var1) {
      int var2 = this.objectToId.getInt(var1);
      if (var2 != -1) {
         class="kw">return var2;
      }

      var2 = this.objectToId.size();
      this.idToObject.put(var2, var1);
      this.objectToId.put(var1, var2);
      class="kw">return var2;
   }

   class="kw">public T getObject(int var1) {
      class="kw">return (T)this.idToObject.get(var1);
   }

   class="kw">public int size() {
      class="kw">return this.objectToId.size();
   }

   @Nonnull
   class="kw">public List<T> getAllValues() {
      class="kw">return new ArrayList<>(this.idToObject.values());
   }

   class="kw">public void forEach(@Nonnull BiConsumer<Integer, T> var1) {
      this.idToObject.forEach(var1::accept);
   }
}