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;
}
}