79 lines
2.9 KiB
Java
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();
|
|
}
|
|
}
|