discord-jadx/app/src/main/java/com/esotericsoftware/kryo/factories/ReflectionSerializerFactory.java
2021-06-27 22:44:35 +02:00

42 lines
1.7 KiB
Java

package com.esotericsoftware.kryo.factories;
import c.d.b.a.a;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.Serializer;
import com.esotericsoftware.kryo.util.Util;
public class ReflectionSerializerFactory implements SerializerFactory {
private final Class<? extends Serializer> serializerClass;
public ReflectionSerializerFactory(Class<? extends Serializer> cls) {
this.serializerClass = cls;
}
public static Serializer makeSerializer(Kryo kryo, Class<? extends Serializer> cls, Class<?> cls2) {
try {
return (Serializer) cls.getConstructor(Kryo.class, Class.class).newInstance(kryo, cls2);
} catch (NoSuchMethodException unused) {
try {
return (Serializer) cls.getConstructor(Kryo.class).newInstance(kryo);
} catch (NoSuchMethodException unused2) {
try {
return (Serializer) cls.getConstructor(Class.class).newInstance(cls2);
} catch (NoSuchMethodException unused3) {
try {
return (Serializer) cls.newInstance();
} catch (Exception e) {
StringBuilder L = a.L("Unable to create serializer \"");
L.append(cls.getName());
L.append("\" for class: ");
L.append(Util.className(cls2));
throw new IllegalArgumentException(L.toString(), e);
}
}
}
}
}
@Override // com.esotericsoftware.kryo.factories.SerializerFactory
public Serializer makeSerializer(Kryo kryo, Class<?> cls) {
return makeSerializer(kryo, this.serializerClass, cls);
}
}