public static String getPackageName(IJavaProject javaProject, URI uri) { try { File file = ResourceUtils.toFile(uri); //FIXME need to determine actual charset from file String content = Files.toString(file, Charsets.UTF_8); if (content.isEmpty() && javaProject != null && ProjectsManager.DEFAULT_PROJECT_NAME.equals(javaProject.getProject().getName())) { java.nio.file.Path path = Paths.get(uri); java.nio.file.Path parent = path; while (parent.getParent() != null && parent.getParent().getNameCount() > 0) { parent = parent.getParent(); String name = parent.getName(parent.getNameCount() - 1).toString(); if (SRC.equals(name)) { String pathStr = path.getParent().toString(); if (pathStr.length() > parent.toString().length()) { pathStr = pathStr.substring(parent.toString().length() + 1); pathStr = pathStr.replace(PATH_SEPARATOR, PERIOD); return pathStr; } } } } else { return getPackageName(javaProject, content); } } catch (IOException e) { JavaLanguageServerPlugin.logException("Failed to read package name from "+uri, e); } return ""; }
private String getPackageName(IPath javaFile) { IProject project = JavaLanguageServerPlugin.getProjectsManager().getDefaultProject(); if (project == null || !project.isAccessible()) { return ""; } IJavaProject javaProject = JavaCore.create(project); return JDTUtils.getPackageName(javaProject, javaFile.toFile().toURI()); }
String packageName = getPackageName(javaProject, uri); String fileName = path.getName(path.getNameCount() - 1).toString(); String packagePath = packageName.replace(PERIOD, PATH_SEPARATOR);