UnknownComponents class

Пакет: com.hypixel.hytale.component.data.unknown

Файл: com/hypixel/hytale/component/data/unknown/UnknownComponents.java

implements: Component<ECS_TYPE>

Поля (5)

МодификаторыТипИмя
BsonDocument var3
ExtraInfo var4
ExtraInfo var4
BsonValue var5
Component var5

Методы (4)

МодификаторыВозвратСигнатура
public void addComponentvoid addComponent(@Nonnull String var1, @Nonnull Component<ECS_TYPE> var2, @Nonnull Codec<Component<ECS_TYPE>> var3)
public void addComponentvoid addComponent(@Nonnull String var1, @Nonnull TempUnknownComponent<ECS_TYPE> var2)
public boolean containsboolean contains(@Nonnull String var1)
if if(var3 == null)

Исходный код

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

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.map.MapCodec;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.bson.BsonDocument;
class="kw">import org.bson.BsonValue;

class="kw">public class UnknownComponents<ECS_TYPE> class="kw">implements Component<ECS_TYPE> {
   @Nonnull
   class="kw">public class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
   @Nonnull
   class="kw">public class="kw">static class="kw">final String ID = "Unknown";
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<UnknownComponents> CODEC = BuilderCodec.builder(UnknownComponents.class, UnknownComponents::new)
      .append(
         new KeyedCodec<>("Components", new MapCodec<>(Codec.BSON_DOCUMENT, Object2ObjectOpenHashMap::new, false)),
         (var0, var1) -> var0.unknownComponents = var1,
         var0 -> var0.unknownComponents
      )
      .add()
      .build();
   @Nonnull
   class="kw">private Map<String, BsonDocument> unknownComponents;

   class="kw">public UnknownComponents() {
      this.unknownComponents = new Object2ObjectOpenHashMap();
   }

   class="kw">public UnknownComponents(@Nonnull Map<String, BsonDocument> var1) {
      this.unknownComponents = var1;
   }

   class="kw">public void addComponent(@Nonnull String var1, @Nonnull Component<ECS_TYPE> var2, @Nonnull Codec<Component<ECS_TYPE>> var3) {
      ExtraInfo var4 = ExtraInfo.THREAD_LOCAL.get();
      BsonValue var5 = var3.encode(var2, var4);
      var4.getValidationResults().logOrThrowValidatorExceptions(LOGGER);
      this.unknownComponents.put(var1, var5.asDocument());
   }

   class="kw">public void addComponent(@Nonnull String var1, @Nonnull TempUnknownComponent<ECS_TYPE> var2) {
      this.unknownComponents.put(var1, var2.getDocument());
   }

   class="kw">public boolean contains(@Nonnull String var1) {
      class="kw">return this.unknownComponents.containsKey(var1);
   }

   @Nullable
   class="kw">public <T class="kw">extends Component<ECS_TYPE>> T removeComponent(@Nonnull String var1, @Nonnull Codec<T> var2) {
      BsonDocument var3 = this.unknownComponents.remove(var1);
      if (var3 == null) {
         class="kw">return null;
      }

      ExtraInfo var4 = ExtraInfo.THREAD_LOCAL.get();
      Component var5 = (T)var2.decode(var3, var4);
      var4.getValidationResults().logOrThrowValidatorExceptions(LOGGER);
      class="kw">return var5;
   }

   @Nonnull
   class="kw">public Map<String, BsonDocument> getUnknownComponents() {
      class="kw">return this.unknownComponents;
   }

   @Nonnull
   @Override
   class="kw">public Component<ECS_TYPE> clone() {
      class="kw">return new UnknownComponents<>(new Object2ObjectOpenHashMap(this.unknownComponents));
   }
}