BoolDoublePairCodec class
Пакет: com.hypixel.hytale.server.core.codec
Файл: com/hypixel/hytale/server/core/codec/BoolDoublePairCodec.java
implements: Codec<BoolDoublePair>
Поля (3)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
Pattern |
PATTERN |
|
StringSchema |
var2 |
|
String |
var3 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(var1 instanceof BsonString) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.codec;
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.NumberSchema;
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.common.tuple.BoolDoublePair;
class="kw">import java.util.regex.Pattern;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonString;
class="kw">import org.bson.BsonValue;
class="kw">public class BoolDoublePairCodec class="kw">implements Codec<BoolDoublePair> {
class="kw">private class="kw">static class="kw">final Pattern PATTERN = Pattern.compile("~?[0-9]*");
class="kw">public BoolDoublePairCodec() {
}
@Nonnull
class="kw">public BoolDoublePair decode(BsonValue var1, ExtraInfo var2) {
if (var1 class="kw">instanceof BsonString) {
String var3 = var1.asString().getValue();
if (var3.charAt(0) == '~') {
class="kw">return var3.length() == 1 ? BoolDoublePair.of(true, 0.0) : BoolDoublePair.of(true, Double.parseDouble(var3.substring(1)));
} else {
class="kw">return BoolDoublePair.of(false, Double.parseDouble(var3));
}
} else {
class="kw">return BoolDoublePair.of(false, var1.asDouble().getValue());
}
}
@Nonnull
class="kw">public BsonValue encode(@Nonnull BoolDoublePair var1, ExtraInfo var2) {
class="kw">return new BsonString((var1.getLeft() ? "~" : "") + var1.getRight());
}
@Nonnull
@Override
class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
StringSchema var2 = new StringSchema();
var2.setPattern(PATTERN);
class="kw">return Schema.anyOf(new NumberSchema(), var2);
}
}