NullableBooleanCodec class
Пакет: com.hypixel.hytale.codec.codecs.simple
Файл: com/hypixel/hytale/codec/codecs/simple/NullableBooleanCodec.java
implements: Codec<Boolean>
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
BooleanSchema |
var3 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("Invalid null value") |
|
|
if if(var2 != null) |
Исходный код
Показать/скрыть
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.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.BooleanSchema;
class="kw">import com.hypixel.hytale.codec.schema.config.NullSchema;
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.BsonBoolean;
class="kw">import org.bson.BsonNull;
class="kw">import org.bson.BsonValue;
class="kw">public class NullableBooleanCodec class="kw">implements Codec<Boolean> {
class="kw">public NullableBooleanCodec() {
}
@Nullable
class="kw">public Boolean decode(@Nonnull BsonValue var1, ExtraInfo var2) {
class="kw">return var1.isNull() ? null : var1.asBoolean().getValue();
}
@Nonnull
class="kw">public BsonValue encode(Boolean var1, ExtraInfo var2) {
class="kw">return (BsonValue)(var1 == null ? BsonNull.VALUE : new BsonBoolean(var1));
}
@Nullable
class="kw">public Boolean decodeJson(@Nonnull RawJsonReader var1, ExtraInfo var2) class="kw">throws IOException {
if (var1.peekFor('n')) {
if (!var1.tryConsume("null")) {
throw new IllegalArgumentException("Invalid null value");
} else {
class="kw">return null;
}
} else {
class="kw">return var1.readBooleanValue();
}
}
@Nonnull
@Override
class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
class="kw">return Schema.anyOf(new BooleanSchema(), new NullSchema());
}
@Nonnull
class="kw">public Schema toSchema(@Nonnull SchemaContext var1, @Nullable Boolean var2) {
BooleanSchema var3 = new BooleanSchema();
if (var2 != null) {
var3.setDefault(var2);
}
class="kw">return Schema.anyOf(var3, new NullSchema());
}
}