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

79 lines
2.9 KiB
Java

package com.thoughtworks.xstream.mapper;
/* loaded from: classes.dex */
public class AbstractXmlFriendlyMapper extends MapperWrapper {
private char dollarReplacementInClass;
private String dollarReplacementInField;
private String noPackagePrefix;
private String underscoreReplacementInField;
protected AbstractXmlFriendlyMapper(Mapper mapper) {
super(mapper);
this.dollarReplacementInClass = '-';
this.dollarReplacementInField = "_DOLLAR_";
this.underscoreReplacementInField = "__";
this.noPackagePrefix = "default";
}
private boolean stringFoundAt(String str, int i, String str2) {
return str.length() >= str2.length() + i && str.substring(i, str2.length() + i).equals(str2);
}
protected String escapeClassName(String str) {
String replace = str.replace('$', this.dollarReplacementInClass);
if (replace.charAt(0) != this.dollarReplacementInClass) {
return replace;
}
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(this.noPackagePrefix);
stringBuffer.append(replace);
return stringBuffer.toString();
}
protected String escapeFieldName(String str) {
StringBuffer stringBuffer = new StringBuffer();
int length = str.length();
for (int i = 0; i < length; i++) {
char charAt = str.charAt(i);
if (charAt == '$') {
stringBuffer.append(this.dollarReplacementInField);
} else if (charAt == '_') {
stringBuffer.append(this.underscoreReplacementInField);
} else {
stringBuffer.append(charAt);
}
}
return stringBuffer.toString();
}
protected String unescapeClassName(String str) {
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(this.noPackagePrefix);
stringBuffer.append(this.dollarReplacementInClass);
if (str.startsWith(stringBuffer.toString())) {
str = str.substring(this.noPackagePrefix.length());
}
return str.replace(this.dollarReplacementInClass, '$');
}
protected String unescapeFieldName(String str) {
StringBuffer stringBuffer = new StringBuffer();
int length = str.length();
int i = 0;
while (i < length) {
char charAt = str.charAt(i);
if (stringFoundAt(str, i, this.underscoreReplacementInField)) {
i += this.underscoreReplacementInField.length() - 1;
stringBuffer.append('_');
} else if (stringFoundAt(str, i, this.dollarReplacementInField)) {
i += this.dollarReplacementInField.length() - 1;
stringBuffer.append('$');
} else {
stringBuffer.append(charAt);
}
i++;
}
return stringBuffer.toString();
}
}