in src/main/java/org/apache/maven/plugins/pmd/ExcludeViolationsFromFile.java [106:122]
private String extractClassName(String packageName, String className, String fullPath) {
// for some reason, some violations don't contain the package name, so we have to guess the full class name
// this looks like a bug in PMD - at least for UnusedImport rule.
if (packageName != null && !packageName.isEmpty() && className != null && !className.isEmpty()) {
return packageName + "." + className;
} else if (packageName != null && !packageName.isEmpty()) {
String fileName = fullPath;
fileName = fileName.substring(fileName.lastIndexOf(File.separatorChar) + 1);
fileName = fileName.substring(0, fileName.length() - 5);
return packageName + "." + fileName;
} else {
final String fileName = fullPath;
final int javaIdx = fileName.indexOf(File.separator + "java" + File.separator);
return fileName.substring(javaIdx >= 0 ? javaIdx + 6 : 0, fileName.length() - 5)
.replace(File.separatorChar, '.');
}
}