private String extractClassName()

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, '.');
        }
    }