/** * Writes content to file, outside the workspace. No change event is * emitted. */ public static void setContent(URI fileURI, String content) throws CoreException { if (content == null) { content = ""; } try { Files.write(content, toFile(fileURI), Charsets.UTF_8); } catch (IOException e) { throw new CoreException(StatusFactory.newErrorStatus("Can not write to " + fileURI, e)); } }
/** * Reads file content directly from the filesystem. */ public static String getContent(URI fileURI) throws CoreException { if (fileURI == null) { return null; } String content; try { content = Files.toString(toFile(fileURI), Charsets.UTF_8); } catch (IOException e) { throw new CoreException(StatusFactory.newErrorStatus("Can not get " + fileURI + " content", e)); } return content; }
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 ""; }