BsonFunctionCodec class

Пакет: com.hypixel.hytale.codec.function

Файл: com/hypixel/hytale/codec/function/BsonFunctionCodec.java

implements: Codec<T>, WrappedCodec<T>

Исходный код

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

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.WrappedCodec;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.Schema;
class="kw">import java.util.Objects;
class="kw">import java.util.function.BiFunction;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonValue;

@Deprecated
class="kw">public class BsonFunctionCodec<T> class="kw">implements Codec<T>, WrappedCodec<T> {
   @Nonnull
   class="kw">private class="kw">final Codec<T> codec;
   @Nonnull
   class="kw">private class="kw">final BiFunction<T, BsonValue, T> decode;
   @Nonnull
   class="kw">private class="kw">final BiFunction<BsonValue, T, BsonValue> encode;

   class="kw">public BsonFunctionCodec(Codec<T> var1, BiFunction<T, BsonValue, T> var2, BiFunction<BsonValue, T, BsonValue> var3) {
      this.codec = Objects.requireNonNull(var1, "codec parameter can't be null");
      this.decode = Objects.requireNonNull(var2, "decode parameter can't be null");
      this.encode = Objects.requireNonNull(var3, "encode parameter can't be null");
   }

   @Override
   class="kw">public T decode(BsonValue var1, ExtraInfo var2) {
      class="kw">return this.decode.apply(this.codec.decode(var1, var2), var1);
   }

   @Override
   class="kw">public BsonValue encode(T var1, ExtraInfo var2) {
      class="kw">return this.encode.apply(this.codec.encode(var1, var2), var1);
   }

   @Nonnull
   @Override
   class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
      class="kw">return var1.refDefinition(this.codec);
   }

   @Nonnull
   @Override
   class="kw">public Codec<T> getChildCodec() {
      class="kw">return this.codec;
   }
}