FloatRangeArrayCodec class

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

Файл: com/hypixel/hytale/math/codec/FloatRangeArrayCodec.java

implements: Codec<FloatRange>, ValidatableCodec<FloatRange>

Поля (8)

МодификаторыТипИмя
StringSchema var2
BsonArray var3
BsonArray var3
float var3
Schema var3
ValidationResults var3
float var4
ArraySchema var4

Методы (2)

МодификаторыВозвратСигнатура
abstract return new FloatRangereturn new FloatRange(var3, var4)
public void validatevoid validate(@Nonnull FloatRange var1, @Nonnull ExtraInfo var2)

Исходный код

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

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.codecs.simple.FloatCodec;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.ArraySchema;
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.schema.config.StringSchema;
class="kw">import com.hypixel.hytale.codec.util.RawJsonReader;
class="kw">import com.hypixel.hytale.codec.validation.ValidatableCodec;
class="kw">import com.hypixel.hytale.codec.validation.ValidationResults;
class="kw">import com.hypixel.hytale.math.range.FloatRange;
class="kw">import java.io.IOException;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonArray;
class="kw">import org.bson.BsonDouble;
class="kw">import org.bson.BsonValue;

class="kw">public class FloatRangeArrayCodec class="kw">implements Codec<FloatRange>, ValidatableCodec<FloatRange> {
   class="kw">public FloatRangeArrayCodec() {
   }

   @Nonnull
   class="kw">public FloatRange decode(@Nonnull BsonValue var1, ExtraInfo var2) {
      BsonArray var3 = var1.asArray();
      class="kw">return new FloatRange(FloatCodec.decodeFloat(var3.get(0)), FloatCodec.decodeFloat(var3.get(1)));
   }

   @Nonnull
   class="kw">public BsonValue encode(@Nonnull FloatRange var1, ExtraInfo var2) {
      BsonArray var3 = new BsonArray();
      var3.add(new BsonDouble(var1.getInclusiveMin()));
      var3.add(new BsonDouble(var1.getInclusiveMax()));
      class="kw">return var3;
   }

   @Nonnull
   class="kw">public FloatRange decodeJson(@Nonnull RawJsonReader var1, ExtraInfo var2) class="kw">throws IOException {
      var1.expect('[');
      var1.consumeWhiteSpace();
      float var3 = FloatCodec.readFloat(var1);
      var1.consumeWhiteSpace();
      var1.expect(',');
      var1.consumeWhiteSpace();
      float var4 = FloatCodec.readFloat(var1);
      var1.consumeWhiteSpace();
      var1.expect(']');
      var1.consumeWhiteSpace();
      class="kw">return new FloatRange(var3, var4);
   }

   @Nonnull
   @Override
   class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
      StringSchema var2 = new StringSchema();
      var2.setPattern("^(-?Infinity|NaN)$");
      Schema var3 = Schema.anyOf(new NumberSchema(), var2);
      var3.getHytale().setType("Number");
      ArraySchema var4 = new ArraySchema();
      var4.setTitle("FloatRange");
      var4.setItems(var3, var3);
      var4.setMinItems(2);
      var4.setMaxItems(2);
      class="kw">return var4;
   }

   class="kw">public void validate(@Nonnull FloatRange var1, @Nonnull ExtraInfo var2) {
      if (var1.getInclusiveMin() > var1.getInclusiveMax()) {
         ValidationResults var3 = var2.getValidationResults();
         var3.fail(String.format("Min (%f) > Max (%f)", var1.getInclusiveMin(), var1.getInclusiveMax()));
         var3._processValidationResults();
      }
   }

   @Override
   class="kw">public void validateDefaults(ExtraInfo var1, Set<Codec<?>> var2) {
   }
}