DoubleCodec class

Пакет: com.hypixel.hytale.codec.codecs.simple

Файл: com/hypixel/hytale/codec/codecs/simple/DoubleCodec.java

implements: Codec<Double>, RawJsonCodec<Double>, PrimitiveCodec

Поля (1)

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

Методы (2)

МодификаторыВозвратСигнатура
abstract return new BsonDoublereturn new BsonDouble(var1)
abstract return new NumberSchemareturn new NumberSchema()

Исходный код

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

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.PrimitiveCodec;
class="kw">import com.hypixel.hytale.codec.RawJsonCodec;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.NumberSchema;
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.BsonDouble;
class="kw">import org.bson.BsonValue;

class="kw">public class DoubleCodec class="kw">implements Codec<Double>, RawJsonCodec<Double>, PrimitiveCodec {
   class="kw">public DoubleCodec() {
   }

   @Nonnull
   class="kw">public Double decode(@Nonnull BsonValue var1, ExtraInfo var2) {
      if (var1.isString()) {
         class="kw">switch (var1.asString().getValue()) {
            case "NaN":
               class="kw">return Double.NaN;
            case "Infinity":
               class="kw">return Double.POSITIVE_INFINITY;
            case "-Infinity":
               class="kw">return Double.NEGATIVE_INFINITY;
         }
      }

      class="kw">return var1.asNumber().doubleValue();
   }

   @Nonnull
   class="kw">public BsonValue encode(Double var1, ExtraInfo var2) {
      class="kw">return new BsonDouble(var1);
   }

   @Nonnull
   class="kw">public Double decodeJson(@Nonnull RawJsonReader var1, ExtraInfo var2) class="kw">throws IOException {
      class="kw">return var1.readDoubleValue();
   }

   @Nonnull
   @Override
   class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
      class="kw">return new NumberSchema();
   }

   @Nonnull
   class="kw">public Schema toSchema(@Nonnull SchemaContext var1, @Nullable Double var2) {
      NumberSchema var3 = new NumberSchema();
      if (var2 != null && !var2.isNaN() && !var2.isInfinite()) {
         var3.setDefault(var2);
      }

      class="kw">return var3;
   }
}