docs: public static String classFilePathToClassname(String relativePath)
      {
          if (relativePath == null)
              return null;
  
          final int pos = relativePath.lastIndexOf(".class");
          if (pos < 0 && relativePath.lastIndexOf(".java") < 0)
              throw new IllegalArgumentException("Not a .class/.java file path: " + relativePath);
  
          relativePath = FilenameUtils.separatorsToUnix(relativePath);
  
          if (relativePath.startsWith("/"))
          {
              relativePath = relativePath.substring(1);
          }
  
          if (relativePath.startsWith("src/main/java/"))
          {
              relativePath = relativePath.substring("src/main/java/".length());
          }
  
          if (relativePath.startsWith("WEB-INF/classes/"))
          {
              relativePath = relativePath.substring("WEB-INF/classes/".length());
          }
  
          if (relativePath.startsWith("WEB-INF/classes.jdk15/"))
          {
              relativePath = relativePath.substring("WEB-INF/classes.jdk15/".length());
          }
  
          if (relativePath.endsWith(".class"))
          {
              relativePath = relativePath.substring(0, relativePath.length() - ".class".length());
          }
          else if (relativePath.endsWith(".java"))
          {
              relativePath = relativePath.substring(0, relativePath.length() - ".java".length());
          }
  
          String qualifiedName = relativePath.replace("/", ".");
          return qualifiedName;
      }