jimu-decompiled/sources/com/thoughtworks/xstream/mapper/OuterClassMapper.java
2025-05-13 19:24:51 +02:00

115 lines
4.0 KiB
Java

package com.thoughtworks.xstream.mapper;
import com.thoughtworks.xstream.core.Caching;
import java.lang.reflect.Field;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/* loaded from: classes.dex */
public class OuterClassMapper extends MapperWrapper implements Caching {
private static final String[] EMPTY_NAMES = new String[0];
static /* synthetic */ Class class$java$lang$Object;
private final String alias;
private final Map innerFields;
public OuterClassMapper(Mapper mapper) {
this(mapper, "outer-class");
}
static /* synthetic */ Class class$(String str) {
try {
return Class.forName(str);
} catch (ClassNotFoundException e) {
throw new NoClassDefFoundError().initCause(e);
}
}
private String[] getInnerFieldNames(Class cls) {
String[] strArr = (String[]) this.innerFields.get(cls.getName());
if (strArr != null) {
return strArr;
}
String[] innerFieldNames = getInnerFieldNames(cls.getSuperclass());
String[] strArr2 = innerFieldNames;
for (Field field : cls.getDeclaredFields()) {
if (field.getName().startsWith("this$")) {
String[] strArr3 = new String[strArr2.length + 1];
System.arraycopy(strArr2, 0, strArr3, 0, strArr2.length);
strArr3[strArr3.length - 1] = field.getName();
strArr2 = strArr3;
}
}
this.innerFields.put(cls.getName(), strArr2);
return strArr2;
}
@Override // com.thoughtworks.xstream.core.Caching
public void flushCache() {
Set keySet = this.innerFields.keySet();
Class cls = class$java$lang$Object;
if (cls == null) {
cls = class$("java.lang.Object");
class$java$lang$Object = cls;
}
keySet.retainAll(Collections.singletonList(cls.getName()));
}
@Override // com.thoughtworks.xstream.mapper.MapperWrapper, com.thoughtworks.xstream.mapper.Mapper
public String realMember(Class cls, String str) {
if (str.startsWith(this.alias)) {
int i = -1;
int length = this.alias.length();
if (length == str.length()) {
i = 0;
} else {
int i2 = length + 1;
if (str.length() > i2 && str.charAt(length) == '-') {
i = Integer.valueOf(str.substring(i2)).intValue();
}
}
if (i >= 0) {
String[] innerFieldNames = getInnerFieldNames(cls);
if (i < innerFieldNames.length) {
return innerFieldNames[i];
}
}
}
return super.realMember(cls, str);
}
@Override // com.thoughtworks.xstream.mapper.MapperWrapper, com.thoughtworks.xstream.mapper.Mapper
public String serializedMember(Class cls, String str) {
if (str.startsWith("this$")) {
String[] innerFieldNames = getInnerFieldNames(cls);
for (int i = 0; i < innerFieldNames.length; i++) {
if (innerFieldNames[i].equals(str)) {
if (i == 0) {
return this.alias;
}
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(this.alias);
stringBuffer.append('-');
stringBuffer.append(i);
return stringBuffer.toString();
}
}
}
return super.serializedMember(cls, str);
}
public OuterClassMapper(Mapper mapper, String str) {
super(mapper);
this.alias = str;
this.innerFields = Collections.synchronizedMap(new HashMap());
Map map = this.innerFields;
Class cls = class$java$lang$Object;
if (cls == null) {
cls = class$("java.lang.Object");
class$java$lang$Object = cls;
}
map.put(cls.getName(), EMPTY_NAMES);
}
}