Short2ObjectMapCodec class

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

Файл: com/hypixel/hytale/codec/codecs/map/Short2ObjectMapCodec.java

implements: Codec<Short2ObjectMap<T>>, WrappedCodec<T>

Поля (15)

МодификаторыТипИмя
final Codec<T> valueCodec
BsonDocument var3
BsonDocument var3
Short2ObjectMap var3
var3
var3
Short2ObjectMap var4
var4
ObjectIterator var4
String var4
it.unimi.dsi.fastutil.shorts.Short2ObjectMap.Entry var5
short var5
String var7
BsonValue var8
short var9

Методы (9)

МодификаторыВозвратСигнатура
abstract throw new CodecExceptionthrow new CodecException("Failed to decode", var8, var2, var13)
abstract throw new CodecExceptionthrow new CodecException("Failed to decode", var1, var2, var9)
public Short2ObjectMap<T> decodeShort2ObjectMap<T> decode(@Nonnull BsonValue var1, @Nonnull ExtraInfo var2)
public Short2ObjectMap<T> decodeJsonShort2ObjectMap<T> decodeJson(@Nonnull RawJsonReader var1, @Nonnull ExtraInfo var2)
if if(this.unmodifiable)
if if(this.unmodifiable)
if if(this.unmodifiable)
abstract this this(var1, var2, true)
while while(true)

Исходный код

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

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.codecs.StringIntegerCodec;
class="kw">import com.hypixel.hytale.codec.exception.CodecException;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.ObjectSchema;
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 it.unimi.dsi.fastutil.objects.ObjectIterator;
class="kw">import it.unimi.dsi.fastutil.shorts.Short2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.shorts.Short2ObjectMaps;
class="kw">import java.io.IOException;
class="kw">import java.util.Map.Entry;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonDocument;
class="kw">import org.bson.BsonValue;

class="kw">public class Short2ObjectMapCodec<T> class="kw">implements Codec<Short2ObjectMap<T>>, WrappedCodec<T> {
   class="kw">private class="kw">final Codec<T> valueCodec;
   class="kw">private class="kw">final Supplier<Short2ObjectMap<T>> supplier;
   class="kw">private class="kw">final boolean unmodifiable;

   class="kw">public Short2ObjectMapCodec(Codec<T> var1, Supplier<Short2ObjectMap<T>> var2, boolean var3) {
      this.valueCodec = var1;
      this.supplier = var2;
      this.unmodifiable = var3;
   }

   class="kw">public Short2ObjectMapCodec(Codec<T> var1, Supplier<Short2ObjectMap<T>> var2) {
      this(var1, var2, true);
   }

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

   class="kw">public Short2ObjectMap<T> decode(@Nonnull BsonValue var1, @Nonnull ExtraInfo var2) {
      BsonDocument var3 = var1.asDocument();
      Short2ObjectMap var4 = this.supplier.get();

      for (Entry var6 : var3.entrySet()) {
         String var7 = var6.getKey();
         BsonValue var8 = var6.getValue();
         var2.pushKey(var7);

         try {
            short var9 = Short.valueOf(var7);
            var4.put(var9, this.valueCodec.decode(var8, var2));
         } catch (Exception var13) {
            throw new CodecException("Failed to decode", var8, var2, var13);
         } class="kw">finally {
            var2.popKey();
         }
      }

      if (this.unmodifiable) {
         var4 = Short2ObjectMaps.unmodifiable(var4);
      }

      class="kw">return var4;
   }

   @Nonnull
   class="kw">public BsonValue encode(@Nonnull Short2ObjectMap<T> var1, ExtraInfo var2) {
      BsonDocument var3 = new BsonDocument();
      ObjectIterator var4 = var1.short2ObjectEntrySet().iterator();

      while (var4.hasNext()) {
         it.unimi.dsi.fastutil.shorts.Short2ObjectMap.Entry var5 = (it.unimi.dsi.fastutil.shorts.Short2ObjectMap.Entry<T>)var4.next();
         var3.put(Short.toString(var5.getShortKey()), this.valueCodec.encode((T)var5.getValue(), var2));
      }

      class="kw">return var3;
   }

   class="kw">public Short2ObjectMap<T> decodeJson(@Nonnull RawJsonReader var1, @Nonnull ExtraInfo var2) class="kw">throws IOException {
      var1.expect('{');
      var1.consumeWhiteSpace();
      Short2ObjectMap var3 = this.supplier.get();
      if (var1.tryConsume('}')) {
         if (this.unmodifiable) {
            var3 = Short2ObjectMaps.unmodifiable(var3);
         }

         class="kw">return var3;
      } else {
         while (true) {
            String var4 = var1.readString();
            var1.consumeWhiteSpace();
            var1.expect(':');
            var1.consumeWhiteSpace();
            var2.pushKey(var4, var1);

            try {
               short var5 = Short.valueOf(var4);
               var3.put(var5, this.valueCodec.decodeJson(var1, var2));
            } catch (Exception var9) {
               throw new CodecException("Failed to decode", var1, var2, var9);
            } class="kw">finally {
               var2.popKey();
            }

            var1.consumeWhiteSpace();
            if (var1.tryConsumeOrExpect('}', ',')) {
               if (this.unmodifiable) {
                  var3 = Short2ObjectMaps.unmodifiable(var3);
               }

               class="kw">return var3;
            }

            var1.consumeWhiteSpace();
         }
      }
   }

   @Nonnull
   @Override
   class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
      ObjectSchema var2 = new ObjectSchema();
      StringSchema var3 = StringIntegerCodec.INSTANCE.toSchema(var1);
      var2.setPropertyNames(var3);
      var2.setAdditionalProperties(var1.refDefinition(this.valueCodec));
      class="kw">return var2;
   }
}