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

595 lines
25 KiB
Java

package com.esotericsoftware.kryo.serializers;
import c.d.b.a.a;
import c.e.a.a;
import c.e.b.c;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.KryoException;
import com.esotericsoftware.kryo.Registration;
import com.esotericsoftware.kryo.Serializer;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import com.esotericsoftware.kryo.serializers.FieldSerializer;
import java.lang.reflect.Field;
public class ObjectField extends FieldSerializer.CachedField {
public final FieldSerializer fieldSerializer;
public Class[] generics;
public final Kryo kryo;
public final Class type;
public static final class ObjectBooleanField extends ObjectField {
public ObjectBooleanField(FieldSerializer fieldSerializer) {
super(fieldSerializer);
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void copy(Object obj, Object obj2) {
try {
Field field = this.field;
field.setBoolean(obj2, field.getBoolean(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField
public Object getField(Object obj) throws IllegalArgumentException, IllegalAccessException {
return Boolean.valueOf(this.field.getBoolean(obj));
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void read(Input input, Object obj) {
try {
this.field.setBoolean(obj, input.readBoolean());
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void write(Output output, Object obj) {
try {
output.writeBoolean(this.field.getBoolean(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
}
public static final class ObjectByteField extends ObjectField {
public ObjectByteField(FieldSerializer fieldSerializer) {
super(fieldSerializer);
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void copy(Object obj, Object obj2) {
try {
Field field = this.field;
field.setByte(obj2, field.getByte(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField
public Object getField(Object obj) throws IllegalArgumentException, IllegalAccessException {
return Byte.valueOf(this.field.getByte(obj));
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void read(Input input, Object obj) {
try {
this.field.setByte(obj, input.readByte());
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void write(Output output, Object obj) {
try {
output.writeByte(this.field.getByte(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
}
public static final class ObjectCharField extends ObjectField {
public ObjectCharField(FieldSerializer fieldSerializer) {
super(fieldSerializer);
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void copy(Object obj, Object obj2) {
try {
Field field = this.field;
field.setChar(obj2, field.getChar(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField
public Object getField(Object obj) throws IllegalArgumentException, IllegalAccessException {
return Character.valueOf(this.field.getChar(obj));
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void read(Input input, Object obj) {
try {
this.field.setChar(obj, input.readChar());
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void write(Output output, Object obj) {
try {
output.writeChar(this.field.getChar(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
}
public static final class ObjectDoubleField extends ObjectField {
public ObjectDoubleField(FieldSerializer fieldSerializer) {
super(fieldSerializer);
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void copy(Object obj, Object obj2) {
try {
Field field = this.field;
field.setDouble(obj2, field.getDouble(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField
public Object getField(Object obj) throws IllegalArgumentException, IllegalAccessException {
return Double.valueOf(this.field.getDouble(obj));
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void read(Input input, Object obj) {
try {
this.field.setDouble(obj, input.readDouble());
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void write(Output output, Object obj) {
try {
output.writeDouble(this.field.getDouble(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
}
public static final class ObjectFloatField extends ObjectField {
public ObjectFloatField(FieldSerializer fieldSerializer) {
super(fieldSerializer);
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void copy(Object obj, Object obj2) {
try {
Field field = this.field;
field.setFloat(obj2, field.getFloat(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField
public Object getField(Object obj) throws IllegalArgumentException, IllegalAccessException {
return Float.valueOf(this.field.getFloat(obj));
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void read(Input input, Object obj) {
try {
this.field.setFloat(obj, input.readFloat());
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void write(Output output, Object obj) {
try {
output.writeFloat(this.field.getFloat(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
}
public static final class ObjectIntField extends ObjectField {
public ObjectIntField(FieldSerializer fieldSerializer) {
super(fieldSerializer);
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void copy(Object obj, Object obj2) {
try {
Field field = this.field;
field.setInt(obj2, field.getInt(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField
public Object getField(Object obj) throws IllegalArgumentException, IllegalAccessException {
return Integer.valueOf(this.field.getInt(obj));
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void read(Input input, Object obj) {
try {
if (this.varIntsEnabled) {
this.field.setInt(obj, input.readInt(false));
} else {
this.field.setInt(obj, input.readInt());
}
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void write(Output output, Object obj) {
try {
if (this.varIntsEnabled) {
output.writeInt(this.field.getInt(obj), false);
} else {
output.writeInt(this.field.getInt(obj));
}
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
}
public static final class ObjectLongField extends ObjectField {
public ObjectLongField(FieldSerializer fieldSerializer) {
super(fieldSerializer);
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void copy(Object obj, Object obj2) {
try {
Field field = this.field;
field.setLong(obj2, field.getLong(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField
public Object getField(Object obj) throws IllegalArgumentException, IllegalAccessException {
return Long.valueOf(this.field.getLong(obj));
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void read(Input input, Object obj) {
try {
if (this.varIntsEnabled) {
this.field.setLong(obj, input.readLong(false));
} else {
this.field.setLong(obj, input.readLong());
}
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void write(Output output, Object obj) {
try {
if (this.varIntsEnabled) {
output.writeLong(this.field.getLong(obj), false);
} else {
output.writeLong(this.field.getLong(obj));
}
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
}
public static final class ObjectShortField extends ObjectField {
public ObjectShortField(FieldSerializer fieldSerializer) {
super(fieldSerializer);
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void copy(Object obj, Object obj2) {
try {
Field field = this.field;
field.setShort(obj2, field.getShort(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField
public Object getField(Object obj) throws IllegalArgumentException, IllegalAccessException {
return Short.valueOf(this.field.getShort(obj));
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void read(Input input, Object obj) {
try {
this.field.setShort(obj, input.readShort());
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
@Override // com.esotericsoftware.kryo.serializers.ObjectField, com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void write(Output output, Object obj) {
try {
output.writeShort(this.field.getShort(obj));
} catch (Exception e) {
KryoException kryoException = new KryoException(e);
StringBuilder sb = new StringBuilder();
sb.append(this);
sb.append(" (");
a.b0(this.type, sb, ")", kryoException);
throw kryoException;
}
}
}
public ObjectField(FieldSerializer fieldSerializer) {
this.fieldSerializer = fieldSerializer;
this.kryo = fieldSerializer.kryo;
this.type = fieldSerializer.type;
}
@Override // com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void copy(Object obj, Object obj2) {
try {
int i = this.accessIndex;
if (i != -1) {
c cVar = (c) this.fieldSerializer.access;
cVar.t(obj2, i, this.kryo.copy(cVar.b(obj, i)));
return;
}
setField(obj2, this.kryo.copy(getField(obj)));
} catch (IllegalAccessException e) {
StringBuilder sb = new StringBuilder();
sb.append("Error accessing field: ");
sb.append(this);
sb.append(" (");
throw new KryoException(a.h(this.type, sb, ")"), e);
} catch (KryoException e2) {
StringBuilder sb2 = new StringBuilder();
sb2.append(this);
sb2.append(" (");
a.b0(this.type, sb2, ")", e2);
throw e2;
} catch (RuntimeException e3) {
KryoException kryoException = new KryoException(e3);
StringBuilder sb3 = new StringBuilder();
sb3.append(this);
sb3.append(" (");
a.b0(this.type, sb3, ")", kryoException);
throw kryoException;
}
}
public Object getField(Object obj) throws IllegalArgumentException, IllegalAccessException {
return this.field.get(obj);
}
@Override // com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void read(Input input, Object obj) {
Object obj2;
try {
a.C0053a aVar = c.e.a.a.a;
Class cls = this.valueClass;
Serializer serializer = this.serializer;
if (cls == null) {
Registration readClass = this.kryo.readClass(input);
if (readClass == null) {
obj2 = null;
} else {
if (serializer == null) {
serializer = readClass.getSerializer();
}
serializer.setGenerics(this.kryo, this.generics);
obj2 = this.kryo.readObject(input, readClass.getType(), serializer);
}
} else {
if (serializer == null) {
serializer = this.kryo.getSerializer(cls);
this.serializer = serializer;
}
serializer.setGenerics(this.kryo, this.generics);
obj2 = this.canBeNull ? this.kryo.readObjectOrNull(input, cls, serializer) : this.kryo.readObject(input, cls, serializer);
}
setField(obj, obj2);
} catch (IllegalAccessException e) {
throw new KryoException("Error accessing field: " + this + " (" + this.type.getName() + ")", e);
} catch (KryoException e2) {
e2.addTrace(this + " (" + this.type.getName() + ")");
throw e2;
} catch (RuntimeException e3) {
KryoException kryoException = new KryoException(e3);
kryoException.addTrace(this + " (" + this.type.getName() + ")");
throw kryoException;
}
}
public void setField(Object obj, Object obj2) throws IllegalArgumentException, IllegalAccessException {
this.field.set(obj, obj2);
}
@Override // com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField
public void write(Output output, Object obj) {
try {
a.C0053a aVar = c.e.a.a.a;
Object field = getField(obj);
Serializer serializer = this.serializer;
Class cls = this.valueClass;
if (cls != null) {
if (serializer == null) {
serializer = this.kryo.getSerializer(cls);
this.serializer = serializer;
}
serializer.setGenerics(this.kryo, this.generics);
if (this.canBeNull) {
this.kryo.writeObjectOrNull(output, field, serializer);
} else if (field != null) {
this.kryo.writeObject(output, field, serializer);
} else {
throw new KryoException("Field value is null but canBeNull is false: " + this + " (" + obj.getClass().getName() + ")");
}
} else if (field == null) {
this.kryo.writeClass(output, null);
} else {
Registration writeClass = this.kryo.writeClass(output, field.getClass());
if (serializer == null) {
serializer = writeClass.getSerializer();
}
serializer.setGenerics(this.kryo, this.generics);
this.kryo.writeObject(output, field, serializer);
}
} catch (IllegalAccessException e) {
throw new KryoException("Error accessing field: " + this + " (" + obj.getClass().getName() + ")", e);
} catch (KryoException e2) {
e2.addTrace(this + " (" + obj.getClass().getName() + ")");
throw e2;
} catch (RuntimeException e3) {
KryoException kryoException = new KryoException(e3);
kryoException.addTrace(this + " (" + obj.getClass().getName() + ")");
throw kryoException;
}
}
}