RefCodec class

Пакет: com.hypixel.hytale.builtin.adventure.worldevents.util

Файл: com/hypixel/hytale/builtin/adventure/worldevents/util/RefCodec.java

implements: Codec<T>

Поля (4)

МодификаторыТипИмя
BuilderCodec var2
BuilderCodec var3
BuilderCodec var3
BuilderCodec var3

Методы (3)

МодификаторыВозвратСигнатура
abstract throw new IllegalStateExceptionthrow new IllegalStateException("Codec already set")
if if(this.codec != null)
public void setvoid set(@Nonnull BuilderCodec<T> var1)

Исходный код

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

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.NullSchema;
class="kw">import com.hypixel.hytale.codec.schema.config.Schema;
class="kw">import com.hypixel.hytale.codec.util.RawJsonReader;
class="kw">import java.io.IOException;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.bson.BsonNull;
class="kw">import org.bson.BsonValue;

class="kw">public class RefCodec<T> class="kw">implements Codec<T> {
   @Nullable
   class="kw">protected class="kw">volatile BuilderCodec<T> codec;

   class="kw">public RefCodec() {
   }

   class="kw">public void set(@Nonnull BuilderCodec<T> var1) {
      if (this.codec != null) {
         throw new IllegalStateException("Codec already set");
      }

      this.codec = var1;
   }

   @Nullable
   @Override
   class="kw">public T decodeJson(@Nonnull RawJsonReader var1, @Nonnull ExtraInfo var2) class="kw">throws IOException {
      assert this.codec != null;
      BuilderCodec var3 = this.codec;
      class="kw">return var3 != null ? var3.decodeJson(var1, var2) : null;
   }

   @Nullable
   @Override
   class="kw">public T decode(@Nonnull BsonValue var1, @Nonnull ExtraInfo var2) {
      assert this.codec != null;
      BuilderCodec var3 = this.codec;
      class="kw">return var3 != null ? var3.decode(var1, var2) : null;
   }

   @Nonnull
   @Override
   class="kw">public BsonValue encode(T var1, @Nonnull ExtraInfo var2) {
      assert this.codec != null;
      BuilderCodec var3 = this.codec;
      class="kw">return (BsonValue)(var3 != null ? var3.encode(var1, var2) : BsonNull.VALUE);
   }

   @Nonnull
   @Override
   class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
      assert this.codec != null;
      BuilderCodec var2 = this.codec;
      class="kw">return var2 != null ? var1.refDefinition(var2) : NullSchema.INSTANCE;
   }
}