DeferredCodec class
Пакет: com.hypixel.hytale.codec.lookup
Файл: com/hypixel/hytale/codec/lookup/DeferredCodec.java
implements: Codec<Deferred<T>>, WrappedCodec<T>
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
|
BsonDocument |
var3 |
|
Object |
var4 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
BsonValue |
encodeBsonValue encode(Deferred<T> var1, ExtraInfo var2) |
|
|
if if(var3 != null) |
|
|
if if(var4 == null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.codec.lookup;
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 com.hypixel.hytale.codec.util.RawJsonReader;
class="kw">import java.io.IOException;
class="kw">import java.util.Objects;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonDocument;
class="kw">import org.bson.BsonValue;
class="kw">public class DeferredCodec<T> class="kw">implements Codec<Deferred<T>>, WrappedCodec<T> {
@Nonnull
class="kw">private class="kw">final BuilderCodecMapCodec<T> codec;
class="kw">public DeferredCodec(@Nonnull BuilderCodecMapCodec<T> var1) {
this.codec = Objects.requireNonNull(var1, "codec parameter can't be null");
}
@Nonnull
class="kw">public Deferred<T> decode(BsonValue var1, ExtraInfo var2) {
class="kw">return new Deferred<>(this.codec, var1.asDocument());
}
@Nonnull
class="kw">public Deferred<T> decodeJson(@Nonnull RawJsonReader var1, ExtraInfo var2) class="kw">throws IOException {
class="kw">return new Deferred<>(this.codec, Codec.BSON_DOCUMENT.decodeJson(var1, var2));
}
class="kw">public BsonValue encode(Deferred<T> var1, ExtraInfo var2) {
BsonDocument var3 = var1.getDocument();
if (var3 != null) {
class="kw">return var3;
} else {
Object var4 = var1.get();
if (var4 == null) {
throw new IllegalStateException("Nothing to encode. Skip the key while " + Deferred.class.getSimpleName() + ".isEmpty()");
} else {
class="kw">return this.codec.encode(var4, var2);
}
}
}
@Nonnull
@Override
class="kw">public Codec<T> getChildCodec() {
class="kw">return this.codec;
}
@Nonnull
@Override
class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
class="kw">return this.codec.toSchema(var1);
}
}