Codec interface
Пакет: com.hypixel.hytale.codec
Файл: com/hypixel/hytale/codec/Codec.java
extends: RawJsonCodec<T>, SchemaConvertable<T>
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
|
StringSchema |
var2 |
|
int |
var3 |
|
BsonValue |
var3 |
|
byte[] |
var4 |
|
|
var4 |
Методы (11)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
return new |
BsonBinaryreturn new BsonBinary(var1) |
abstract |
throw new |
CodecExceptionthrow new CodecException("Failed to decode", var1, var2, var9) |
|
public byte[] |
decodepublic byte[] decode(@Nonnull BsonValue var1, ExtraInfo var2) |
|
public byte[] |
decodeJsonpublic byte[] decodeJson(RawJsonReader var1, ExtraInfo var2) |
|
public BsonValue |
encodepublic BsonValue encode(@Nonnull byte[] var1, ExtraInfo var2) |
abstract |
BsonValue |
encodeBsonValue encode(T var1, ExtraInfo var2) |
|
|
if if(var3 == var4.length) |
|
|
if if(var4.length == var3) |
static |
boolean |
isNullBsonValueboolean isNullBsonValue(@Nullable BsonValue var0) |
|
public Schema |
toSchemapublic Schema toSchema(@Nonnull SchemaContext var1) |
|
|
while while(true) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.codec;
class="kw">import com.hypixel.hytale.codec.codecs.BsonDocumentCodec;
class="kw">import com.hypixel.hytale.codec.codecs.UUIDBinaryCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.DoubleArrayCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.FloatArrayCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.IntArrayCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.LongArrayCodec;
class="kw">import com.hypixel.hytale.codec.codecs.simple.BooleanCodec;
class="kw">import com.hypixel.hytale.codec.codecs.simple.ByteCodec;
class="kw">import com.hypixel.hytale.codec.codecs.simple.DoubleCodec;
class="kw">import com.hypixel.hytale.codec.codecs.simple.FloatCodec;
class="kw">import com.hypixel.hytale.codec.codecs.simple.IntegerCodec;
class="kw">import com.hypixel.hytale.codec.codecs.simple.LongCodec;
class="kw">import com.hypixel.hytale.codec.codecs.simple.NullableBooleanCodec;
class="kw">import com.hypixel.hytale.codec.codecs.simple.ShortCodec;
class="kw">import com.hypixel.hytale.codec.codecs.simple.StringCodec;
class="kw">import com.hypixel.hytale.codec.exception.CodecException;
class="kw">import com.hypixel.hytale.codec.function.FunctionCodec;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.SchemaConvertable;
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 java.io.IOException;
class="kw">import java.nio.file.Path;
class="kw">import java.nio.file.Paths;
class="kw">import java.time.Duration;
class="kw">import java.time.Instant;
class="kw">import java.util.Arrays;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.TimeUnit;
class="kw">import java.util.logging.Level;
class="kw">import java.util.regex.Pattern;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.bson.BsonBinary;
class="kw">import org.bson.BsonValue;
class="kw">public class="kw">interface Codec<T> class="kw">extends RawJsonCodec<T>, SchemaConvertable<T> {
@Deprecated
BsonDocumentCodec BSON_DOCUMENT = new BsonDocumentCodec();
StringCodec STRING = new StringCodec();
BooleanCodec BOOLEAN = new BooleanCodec();
NullableBooleanCodec NULLABLE_BOOLEAN = new NullableBooleanCodec();
DoubleCodec DOUBLE = new DoubleCodec();
FloatCodec FLOAT = new FloatCodec();
ByteCodec BYTE = new ByteCodec();
ShortCodec SHORT = new ShortCodec();
IntegerCodec INTEGER = new IntegerCodec();
LongCodec LONG = new LongCodec();
Pattern BASE64_PATTERN = Pattern.compile("^[0-9a-zA-Z+/]+$");
@Deprecated
Codec<byte[]> BYTE_ARRAY = new Codec<byte[]>() {
class="kw">public byte[] decode(@Nonnull BsonValue var1, ExtraInfo var2) {
class="kw">return var1.asBinary().getData();
}
@Nonnull
class="kw">public BsonValue encode(@Nonnull byte[] var1, ExtraInfo var2) {
class="kw">return new BsonBinary(var1);
}
@Nullable
class="kw">public byte[] decodeJson(RawJsonReader var1, ExtraInfo var2) class="kw">throws IOException {
var1.expect('[');
var1.consumeWhiteSpace();
if (var1.tryConsume(']')) {
class="kw">return new byte[0];
}
int var3 = 0;
byte[] var4 = new byte[10];
while (true) {
if (var3 == var4.length) {
var4 = Arrays.copyOf(var4, var3 + 1 + (var3 >> 1));
}
var2.pushIntKey(var3, var1);
try {
var4[var3] = var1.readByteValue();
var3++;
} catch (Exception var9) {
throw new CodecException("Failed to decode", var1, var2, var9);
} class="kw">finally {
var2.popKey();
}
var1.consumeWhiteSpace();
if (var1.tryConsumeOrExpect(']', ',')) {
if (var4.length == var3) {
class="kw">return var4;
}
class="kw">return Arrays.copyOf(var4, var3);
}
var1.consumeWhiteSpace();
}
}
@Nonnull
@Override
class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
StringSchema var2 = new StringSchema();
var2.setPattern(BASE64_PATTERN);
var2.setTitle("Binary");
class="kw">return var2;
}
};
DoubleArrayCodec DOUBLE_ARRAY = new DoubleArrayCodec();
FloatArrayCodec FLOAT_ARRAY = new FloatArrayCodec();
IntArrayCodec INT_ARRAY = new IntArrayCodec();
LongArrayCodec LONG_ARRAY = new LongArrayCodec();
ArrayCodec<String> STRING_ARRAY = new ArrayCodec<>(STRING, String[]::new);
FunctionCodec<String, Path> PATH = new FunctionCodec<>(STRING, var0 -> Paths.get(var0), Path::toString);
FunctionCodec<String, Instant> INSTANT = new FunctionCodec<>(STRING, Instant::parse, Instant::toString);
FunctionCodec<String, Duration> DURATION = new FunctionCodec<>(STRING, Duration::parse, Duration::toString);
FunctionCodec<Double, Duration> DURATION_SECONDS = new FunctionCodec<>(
DOUBLE,
var0 -> Duration.ofNanos((long)(var0 * TimeUnit.SECONDS.toNanos(1L))),
var0 -> var0 == null ? null : (double)var0.toNanos() / TimeUnit.SECONDS.toNanos(1L)
);
FunctionCodec<String, Level> LOG_LEVEL = new FunctionCodec<>(STRING, Level::parse, Level::toString);
UUIDBinaryCodec UUID_BINARY = new UUIDBinaryCodec();
FunctionCodec<String, UUID> UUID_STRING = new FunctionCodec<>(STRING, UUID::fromString, UUID::toString);
@Nullable
@Deprecated
class="kw">default T decode(BsonValue var1) {
class="kw">return this.decode(var1, EmptyExtraInfo.EMPTY);
}
@Nullable
T decode(BsonValue var1, ExtraInfo var2);
@Deprecated
class="kw">default BsonValue encode(T var1) {
class="kw">return this.encode(var1, EmptyExtraInfo.EMPTY);
}
BsonValue encode(T var1, ExtraInfo var2);
@Nullable
@Override
class="kw">default T decodeJson(@Nonnull RawJsonReader var1, ExtraInfo var2) class="kw">throws IOException {
BsonValue var3 = RawJsonReader.readBsonValue(var1);
class="kw">return this.decode(var3, var2);
}
class="kw">static boolean isNullBsonValue(@Nullable BsonValue var0) {
class="kw">return var0 == null || var0.isNull();
}
}