discord-jadx/app/src/main/java/com/esotericsoftware/kryo/serializers/EnumNameSerializer.java

37 lines
1.3 KiB
Java

package com.esotericsoftware.kryo.serializers;
import c.d.b.a.a;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.KryoException;
import com.esotericsoftware.kryo.Serializer;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
public class EnumNameSerializer extends Serializer<Enum> {
private final Class<? extends Enum> enumType;
private final Serializer stringSerializer;
public EnumNameSerializer(Kryo kryo, Class<? extends Enum> cls) {
this.enumType = cls;
this.stringSerializer = kryo.getSerializer(String.class);
setImmutable(true);
}
@Override // com.esotericsoftware.kryo.Serializer
public Enum read(Kryo kryo, Input input, Class<Enum> cls) {
String str = (String) kryo.readObject(input, String.class, this.stringSerializer);
try {
return Enum.valueOf(this.enumType, str);
} catch (IllegalArgumentException e) {
StringBuilder K = a.K("Invalid name for enum \"");
K.append(this.enumType.getName());
K.append("\": ");
K.append(str);
throw new KryoException(K.toString(), e);
}
}
public void write(Kryo kryo, Output output, Enum r4) {
kryo.writeObject(output, r4.name(), this.stringSerializer);
}
}