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

117 lines
4.4 KiB
Java

package com.thoughtworks.xstream.mapper;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
/* loaded from: classes.dex */
public class PackageAliasingMapper extends MapperWrapper implements Serializable {
private static final Comparator REVERSE = new Comparator() { // from class: com.thoughtworks.xstream.mapper.PackageAliasingMapper.1
@Override // java.util.Comparator
public int compare(Object obj, Object obj2) {
return ((String) obj2).compareTo((String) obj);
}
};
protected transient Map nameToPackage;
private Map packageToName;
public PackageAliasingMapper(Mapper mapper) {
super(mapper);
this.packageToName = new TreeMap(REVERSE);
this.nameToPackage = new HashMap();
}
private void readObject(ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException {
this.packageToName = new TreeMap(REVERSE);
this.packageToName.putAll((Map) objectInputStream.readObject());
this.nameToPackage = new HashMap();
for (Object obj : this.packageToName.keySet()) {
this.nameToPackage.put(this.packageToName.get(obj), obj);
}
}
private void writeObject(ObjectOutputStream objectOutputStream) throws IOException {
objectOutputStream.writeObject(new HashMap(this.packageToName));
}
public void addPackageAlias(String str, String str2) {
if (str.length() > 0 && str.charAt(str.length() - 1) != '.') {
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(str);
stringBuffer.append('.');
str = stringBuffer.toString();
}
if (str2.length() > 0 && str2.charAt(str2.length() - 1) != '.') {
StringBuffer stringBuffer2 = new StringBuffer();
stringBuffer2.append(str2);
stringBuffer2.append('.');
str2 = stringBuffer2.toString();
}
this.nameToPackage.put(str, str2);
this.packageToName.put(str2, str);
}
@Override // com.thoughtworks.xstream.mapper.MapperWrapper, com.thoughtworks.xstream.mapper.Mapper
public Class realClass(String str) {
String stringBuffer;
int length = str.length();
while (true) {
int lastIndexOf = str.lastIndexOf(46, length);
if (lastIndexOf < 0) {
stringBuffer = "";
} else {
StringBuffer stringBuffer2 = new StringBuffer();
stringBuffer2.append(str.substring(0, lastIndexOf));
stringBuffer2.append('.');
stringBuffer = stringBuffer2.toString();
}
String str2 = (String) this.nameToPackage.get(stringBuffer);
if (str2 != null) {
StringBuffer stringBuffer3 = new StringBuffer();
stringBuffer3.append(str2);
if (lastIndexOf >= 0) {
str = str.substring(lastIndexOf + 1);
}
stringBuffer3.append(str);
str = stringBuffer3.toString();
} else {
int i = lastIndexOf - 1;
if (lastIndexOf < 0) {
break;
}
length = i;
}
}
return super.realClass(str);
}
@Override // com.thoughtworks.xstream.mapper.MapperWrapper, com.thoughtworks.xstream.mapper.Mapper
public String serializedClass(Class cls) {
String name = cls.getName();
int length = name.length();
while (true) {
int lastIndexOf = name.lastIndexOf(46, length);
String str = (String) this.packageToName.get(lastIndexOf < 0 ? "" : name.substring(0, lastIndexOf + 1));
if (str != null) {
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(str);
if (lastIndexOf >= 0) {
name = name.substring(lastIndexOf + 1);
}
stringBuffer.append(name);
return stringBuffer.toString();
}
int i = lastIndexOf - 1;
if (lastIndexOf < 0) {
return super.serializedClass(cls);
}
length = i;
}
}
}