KeyedCodec class
Пакет: com.hypixel.hytale.codec
Файл: com/hypixel/hytale/codec/KeyedCodec.java
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
|
BsonValue |
var3 |
|
char |
var4 |
|
BsonValue |
var4 |
|
BsonValue |
var4 |
|
char |
var5 |
Методы (17)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
CodecExceptionthrow new CodecException("Failed decode", var1, var2, var8) |
abstract |
throw new |
CodecExceptionthrow new CodecException("Failed decode", var1, var2, var9) |
abstract |
throw new |
CodecExceptionthrow new CodecException("Failed decode", var1, var3, var9) |
abstract |
throw new |
CodecExceptionthrow new CodecException("Failed encode", var2, var3, var5) |
abstract |
throw new |
CodecExceptionthrow new CodecException("Failed to decode", var1, var2, var4) |
abstract |
throw new |
CodecExceptionthrow new CodecException("Failed to decode", var1, var3, var5) |
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("Key must not be empty! Key: '" + var1 + "'") |
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("Key must start with an upper case character! Key: '" + var1 + "'") |
protected |
BsonValue |
encodeBsonValue encode(T var1, ExtraInfo var2) |
public |
T |
getNowT getNow(BsonDocument var1, @Nonnull ExtraInfo var2) |
|
|
if if(var1 == null) |
|
|
if if(var1 == null) |
|
|
if if(var1 == null) |
|
|
if if(var2 != null) |
public |
boolean |
isRequiredboolean isRequired() |
public |
void |
putvoid put(@Nonnull BsonDocument var1, @Nullable T var2, @Nonnull ExtraInfo var3) |
abstract |
|
this this(var1, var2, false) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.codec;
class="kw">import com.hypixel.hytale.codec.exception.CodecException;
class="kw">import java.util.Objects;
class="kw">import java.util.Optional;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.bson.BsonDocument;
class="kw">import org.bson.BsonSerializationException;
class="kw">import org.bson.BsonValue;
class="kw">public class KeyedCodec<T> {
@Nonnull
class="kw">private class="kw">final String key;
@Nonnull
class="kw">private class="kw">final Codec<T> codec;
class="kw">private class="kw">final boolean required;
class="kw">public KeyedCodec(@Nonnull String var1, Codec<T> var2) {
this(var1, var2, false);
}
class="kw">public KeyedCodec(@Nonnull String var1, Codec<T> var2, boolean var3) {
this.key = Objects.requireNonNull(var1, "key parameter can't be null");
this.codec = Objects.requireNonNull(var2, "codec parameter can't be null");
this.required = var3;
if (var1.isEmpty()) {
throw new IllegalArgumentException("Key must not be empty! Key: '" + var1 + "'");
}
char var4 = var1.charAt(0);
if (Character.isLetter(var4) && !Character.isUpperCase(var4)) {
throw new IllegalArgumentException("Key must start with an upper case character! Key: '" + var1 + "'");
}
}
@Deprecated
class="kw">public KeyedCodec(@Nonnull String var1, Codec<T> var2, boolean var3, boolean var4) {
this.key = Objects.requireNonNull(var1, "key parameter can't be null");
this.codec = Objects.requireNonNull(var2, "codec parameter can't be null");
this.required = var3;
if (var1.isEmpty()) {
throw new IllegalArgumentException("Key must not be empty! Key: '" + var1 + "'");
}
char var5 = var1.charAt(0);
if (!var4 && Character.isLetter(var5) && !Character.isUpperCase(var5)) {
throw new IllegalArgumentException("Key must start with an upper case character! Key: '" + var1 + "'");
}
}
@Nonnull
class="kw">public String getKey() {
class="kw">return this.key;
}
@Deprecated
class="kw">public T getNow(BsonDocument var1) {
class="kw">return this.getNow(var1, EmptyExtraInfo.EMPTY);
}
class="kw">public T getNow(BsonDocument var1, @Nonnull ExtraInfo var2) {
class="kw">return this.get(var1, var2).orElseThrow(() -> new BsonSerializationException(this.key + " does not exist in document!"));
}
@Nullable
@Deprecated
class="kw">public T getOrNull(BsonDocument var1) {
class="kw">return this.getOrNull(var1, EmptyExtraInfo.EMPTY);
}
@Nullable
class="kw">public T getOrNull(BsonDocument var1, @Nonnull ExtraInfo var2) {
class="kw">return this.get(var1, var2).orElse(null);
}
@Nonnull
@Deprecated
class="kw">public Optional<T> get(BsonDocument var1) {
class="kw">return this.get(var1, EmptyExtraInfo.EMPTY);
}
@Nonnull
class="kw">public Optional<T> get(@Nullable BsonDocument var1, @Nonnull ExtraInfo var2) {
var2.pushKey(this.key);
try {
if (var1 == null) {
class="kw">return Optional.empty();
}
BsonValue var3 = var1.get(this.key);
class="kw">return Codec.isNullBsonValue(var3) ? Optional.empty() : Optional.ofNullable(this.decode(var3, var2));
} catch (Exception var8) {
throw new CodecException("Failed decode", var1, var2, var8);
} class="kw">finally {
var2.popKey();
}
}
@Nullable
class="kw">public T getOrDefault(@Nullable BsonDocument var1, @Nonnull ExtraInfo var2, T var3) {
var2.pushKey(this.key);
try {
if (var1 == null) {
class="kw">return var3;
}
BsonValue var4 = var1.get(this.key);
class="kw">return Codec.isNullBsonValue(var4) ? var3 : this.codec.decode(var4, var2);
} catch (Exception var9) {
throw new CodecException("Failed decode", var1, var2, var9);
} class="kw">finally {
var2.popKey();
}
}
@Nonnull
class="kw">public Optional<T> getAndInherit(@Nullable BsonDocument var1, T var2, @Nonnull ExtraInfo var3) {
var3.pushKey(this.key);
try {
if (var1 == null) {
class="kw">return Optional.ofNullable(this.decodeAndInherit(null, var2, var3));
}
BsonValue var4 = var1.get(this.key);
class="kw">return Codec.isNullBsonValue(var4)
? Optional.ofNullable(this.decodeAndInherit(null, var2, var3))
: Optional.ofNullable(this.decodeAndInherit(var4, var2, var3));
} catch (Exception var9) {
throw new CodecException("Failed decode", var1, var3, var9);
} class="kw">finally {
var3.popKey();
}
}
@Deprecated
class="kw">public void put(@Nonnull BsonDocument var1, T var2) {
this.put(var1, var2, EmptyExtraInfo.EMPTY);
}
class="kw">public void put(@Nonnull BsonDocument var1, @Nullable T var2, @Nonnull ExtraInfo var3) {
if (var2 != null) {
try {
var1.put(this.key, this.encode(var2, var3));
} catch (Exception var5) {
throw new CodecException("Failed encode", var2, var3, var5);
}
}
}
@Nullable
class="kw">protected T decode(BsonValue var1, @Nonnull ExtraInfo var2) {
if (!this.required && Codec.isNullBsonValue(var1)) {
class="kw">return null;
}
try {
class="kw">return this.codec.decode(var1, var2);
} catch (Exception var4) {
throw new CodecException("Failed to decode", var1, var2, var4);
}
}
@Nullable
class="kw">protected T decodeAndInherit(@Nullable BsonValue var1, T var2, @Nonnull ExtraInfo var3) {
if (!this.required && Codec.isNullBsonValue(var1)) {
class="kw">return null;
}
try {
class="kw">return var1 != null && var1.isDocument() && this.codec class="kw">instanceof InheritCodec
? ((InheritCodec)this.codec).decodeAndInherit(var1.asDocument(), var2, var3)
: this.codec.decode(var1, var3);
} catch (Exception var5) {
throw new CodecException("Failed to decode", var1, var3, var5);
}
}
class="kw">protected BsonValue encode(T var1, ExtraInfo var2) {
class="kw">return this.codec.encode(var1, var2);
}
@Nonnull
class="kw">public Codec<T> getChildCodec() {
class="kw">return this.codec;
}
class="kw">public boolean isRequired() {
class="kw">return this.required;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "KeyedCodec{key='" + this.key + "', codec=" + this.codec + "}";
}
}