@Override
public synchronized void addMapping(String originalClassName, String replacementClassName, URL replacementResource,
ClassReplacementTest test) {
if (null == originalClassName || 0 == originalClassName.length() || null == replacementClassName
|| 0 == replacementClassName.length()) { return; }
List<Replacement> replacements = classNamesMapping.get(originalClassName);
if (replacements != null) {
verifyTests(originalClassName, replacements);
} else {
replacements = new ArrayList<Replacement>();
classNamesMapping.put(originalClassName, replacements);
}
replacements.add(new Replacement(replacementClassName, replacementResource, test));
String originalClassNameSlashes = originalClassName.replace('.', '/');
String replacementClassNameSlashes = replacementClassName.replace('.', '/');
classNamesSlashesReverseMapping.put(replacementClassNameSlashes, originalClassNameSlashes);
asmTypesReverseMapping.put(ensureAsmType(replacementClassNameSlashes), ensureAsmType(originalClassNameSlashes));
}