private String getClassNameRenamed(final String className, final boolean includeRenamedPackages) {
if (className.startsWith("[L")) {
final String classNameWithoutArrayDef = className.substring(2, className.length() - 1);
return "[L" + getClassNameRenamed(classNameWithoutArrayDef) + ";";
}
final String directlyRenamedClassName = renamedClasses.get(className);
if (directlyRenamedClassName != null) {
logger.info("Class '{}' was encountered. Returning new class name: '{}'", className,
directlyRenamedClassName);
return directlyRenamedClassName;
}
if (includeRenamedPackages) {
final Set<Entry<String, String>> entrySet = renamedPackages.entrySet();
for (final Entry<String, String> entry : entrySet) {
final String legacyPackage = entry.getKey();
if (className.startsWith(legacyPackage)) {
final String renamedClassName = className.replaceFirst(legacyPackage, entry.getValue());
logger.info("Class '{}' was encountered. Adapting to new class name: '{}'", className,
renamedClassName);
return getClassNameRenamed(renamedClassName, includeRenamedPackages);
}
}
}
return className;
}