InetSocketAddressCodec class
Пакет: com.hypixel.hytale.codec.codecs
Файл: com/hypixel/hytale/codec/codecs/InetSocketAddressCodec.java
implements: Codec<InetSocketAddress>
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
Pattern |
ADDRESS_PATTERN |
|
StringSchema |
var2 |
|
String[] |
var2 |
|
String |
var3 |
|
String |
var3 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
return new |
InetSocketAddressreturn new InetSocketAddress(var0, var1) |
abstract |
return |
decodeStringreturn decodeString(var3, this.defaultPort) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.codec.codecs;
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.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.net.InetSocketAddress;
class="kw">import java.util.regex.Pattern;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonValue;
class="kw">public class InetSocketAddressCodec class="kw">implements Codec<InetSocketAddress> {
class="kw">private class="kw">static class="kw">final Pattern ADDRESS_PATTERN = Pattern.compile("(.*?:)?[0-9]+");
class="kw">private class="kw">final int defaultPort;
class="kw">public InetSocketAddressCodec(int var1) {
this.defaultPort = var1;
}
@Nonnull
class="kw">public InetSocketAddress decode(@Nonnull BsonValue var1, ExtraInfo var2) {
String var3 = STRING.decode(var1, var2);
class="kw">return decodeString(var3, this.defaultPort);
}
@Nonnull
class="kw">public BsonValue encode(@Nonnull InetSocketAddress var1, ExtraInfo var2) {
class="kw">return STRING.encode(var1.getHostString() + ":" + var1.getPort(), var2);
}
@Nonnull
class="kw">public InetSocketAddress decodeJson(@Nonnull RawJsonReader var1, ExtraInfo var2) class="kw">throws IOException {
String var3 = STRING.decodeJson(var1, var2);
class="kw">return decodeString(var3, this.defaultPort);
}
@Nonnull
@Override
class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
StringSchema var2 = new StringSchema();
var2.setPattern(ADDRESS_PATTERN);
class="kw">return var2;
}
@Nonnull
class="kw">private class="kw">static InetSocketAddress decodeString(@Nonnull String var0, int var1) {
if (var0.contains(":")) {
String[] var2 = var0.split(":", 2);
class="kw">return new InetSocketAddress(var2[0], Integer.parseInt(var2[1]));
}
try {
class="kw">return new InetSocketAddress(Integer.parseInt(var0));
} catch (NumberFormatException var3) {
class="kw">return new InetSocketAddress(var0, var1);
}
}
}