List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getPath
IPath getPath();
From source file:ccw.ClojureCore.java
License:Open Source License
/** * @return starting with a leading slash "/", the root classpath relative * path of this file/* w w w . ja va 2s. c om*/ */ public static String getAsRootClasspathRelativePath(IFile file) { try { IJavaProject jProject = JavaCore.create(file.getProject()); IPackageFragmentRoot[] froots = jProject.getAllPackageFragmentRoots(); for (IPackageFragmentRoot froot : froots) { if (froot.getPath().isPrefixOf(file.getFullPath())) { String ret = "/" + file.getFullPath().makeRelativeTo(froot.getPath()).toString(); return ret; } } } catch (JavaModelException e) { CCWPlugin.logError("unable to determine the fragment root of the file " + file, e); } return null; }
From source file:ch.mlutz.plugins.t4e.tools.EclipseTools.java
License:Open Source License
/** * @param project/*from w w w .j a v a2s. com*/ * @return * @throws CoreException * @throws JavaModelException */ public static IPackageFragmentRoot[] getPackageFragmentRoots(IProject project) throws CoreException, JavaModelException { IPackageFragmentRoot[] packageFragmentRoots = null; IJavaProject javaProject = null; if (project.hasNature(JavaCore.NATURE_ID)) { // Cast the IProject to IJavaProject. javaProject = JavaCore.create(project); // Get the array of IPackageFragmentRoot using getAllPackageFragmentRoots() packageFragmentRoots = javaProject.getAllPackageFragmentRoots(); // Get the one(s) which have getKind() == IPackageFragmentRoot.K_SOURCE for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) { if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { System.out.println("Source Folder: " + packageFragmentRoot.getPath()); } } } return packageFragmentRoots; }
From source file:cn.ieclipse.pde.explorer.java.JavaAdapterFactory.java
License:Apache License
public IExplorable getFromJava(IJavaElement obj) { String path = null;/* w ww . j av a2s .c o m*/ // java project. if (obj instanceof IJavaProject) { path = ((IJavaProject) obj).getProject().getLocation().toOSString(); return new Explorer(path, null); } // jar resource is null else if (obj instanceof JarPackageFragmentRoot) { IPackageFragmentRoot lib = ((IPackageFragmentRoot) obj); if (!lib.isExternal()) { IWorkspaceRoot root = lib.getJavaProject().getProject().getWorkspace().getRoot(); IResource res = root.findMember(lib.getPath()); if (res != null) { return ExplorerPlugin.getFromResource(res); } } // external lib String file = lib.getPath().toOSString(); return new Explorer(null, file); } else if (obj instanceof IPackageFragmentRoot) { // src folder IPackageFragmentRoot src = ((IPackageFragmentRoot) obj); IProject p = src.getJavaProject().getProject(); String prjPath = p.getLocation().toOSString(); IResource res = src.getResource(); // Fix multi-folder source folder issue String srcospath = res.getProjectRelativePath().toOSString(); path = new File(prjPath, srcospath).getAbsolutePath(); // end fix return new Explorer(path, null); // System.out.println(path); } else if (obj instanceof IPackageFragment) {// other : package IResource resource = ((IPackageFragment) obj).getResource(); path = resource.getLocation().toOSString(); return new Explorer(path, null); } else {// member:filed: IResource resource = ((IJavaElement) obj).getResource(); String file = resource.getLocation().toOSString(); // get folder return new Explorer(null, file); } }
From source file:com.aerospike.project.wizards.NewAerospikeProjectWizard.java
License:Apache License
protected boolean generateJavaProject() { URL url = this.getClass().getResource("project.stg"); final STGroup projectSTG = new STGroupFile(url.getPath()); final String projectName = page.getProjectName(); final String author = page.getAuthor(); final String email = page.getEmail(); final String artifactId = page.getArtifiactId(); final String version = page.getVersion(); final String packageString = page.getPackage(); final String mainClass = page.getMainClassName(); final String seedNode = page.getSeedNode(); final String port = page.getPortString(); final boolean generateMain = page.getGenerateMain(); final boolean generateJUnit = page.getGenerateJUnit(); IRunnableWithProgress op = new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException { try { //Create the project IProject project = createProject(projectName, monitor); project.setPersistentProperty(CoreActivator.SEED_NODE_PROPERTY, seedNode); project.setPersistentProperty(CoreActivator.PORT_PROPERTY, port); project.setPersistentProperty(CoreActivator.UDF_DIRECTORY, null); project.setPersistentProperty(CoreActivator.AQL_GENERATION_DIRECTORY, null); //make a java project IJavaProject javaProject = JavaCore.create(project); // create the classpath entries List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>(); IExecutionEnvironmentsManager executionEnvironmentsManager = JavaRuntime .getExecutionEnvironmentsManager(); IExecutionEnvironment[] executionEnvironments = executionEnvironmentsManager .getExecutionEnvironments(); for (IExecutionEnvironment iExecutionEnvironment : executionEnvironments) { // We will look for JavaSE-1.6 as the JRE container to add to our classpath if ("JavaSE-1.6".equals(iExecutionEnvironment.getId())) { entries.add(JavaCore .newContainerEntry(JavaRuntime.newJREContainerPath(iExecutionEnvironment))); break; } else if ("JavaSE-1.5".equals(iExecutionEnvironment.getId())) { entries.add(JavaCore .newContainerEntry(JavaRuntime.newJREContainerPath(iExecutionEnvironment))); break; }/*from w ww . jav a2 s . c o m*/ } IClasspathEntry mavenEntry = JavaCore.newContainerEntry( new Path("org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"), new IAccessRule[0], new IClasspathAttribute[] { JavaCore.newClasspathAttribute( "org.eclipse.jst.component.dependency", "/WEB-INF/lib") }, false); entries.add(mavenEntry); javaProject.setRawClasspath(entries.toArray(new IClasspathEntry[entries.size()]), null); // create source folders IFolder srcMainJava = project.getFolder("src/main/java"); createFolder(srcMainJava); IFolder srcMainResource = project.getFolder("src/main/resource"); createFolder(srcMainResource); IFolder srcTestJava = project.getFolder("src/test/java"); createFolder(srcTestJava); IFolder srcTestResource = project.getFolder("src/test/resource"); createFolder(srcTestResource); // create aerospike folders IFolder srcUDF = project.getFolder(store.getString(PreferenceConstants.UDF_PATH)); createFolder(srcUDF); IFolder srcGenerated = project.getFolder(store.getString(PreferenceConstants.GENERATION_PATH)); createFolder(srcGenerated); IFolder srcAql = project.getFolder("aql"); createFolder(srcAql); // IPackageFragmentRoot mainJava = javaProject.getPackageFragmentRoot(srcMainJava); IPackageFragmentRoot mainResource = javaProject.getPackageFragmentRoot(srcMainResource); IPackageFragmentRoot testJava = javaProject.getPackageFragmentRoot(srcTestJava); IPackageFragmentRoot testResource = javaProject.getPackageFragmentRoot(srcTestResource); IPackageFragmentRoot mainGenerated = javaProject.getPackageFragmentRoot(srcGenerated); IClasspathEntry[] oldEntries = javaProject.getRawClasspath(); IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 5]; System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length); newEntries[oldEntries.length] = JavaCore.newSourceEntry(mainJava.getPath()); newEntries[oldEntries.length + 1] = JavaCore.newSourceEntry(mainResource.getPath()); newEntries[oldEntries.length + 2] = JavaCore.newSourceEntry(testJava.getPath()); newEntries[oldEntries.length + 3] = JavaCore.newSourceEntry(testResource.getPath()); newEntries[oldEntries.length + 4] = JavaCore.newSourceEntry(mainGenerated.getPath()); javaProject.setRawClasspath(newEntries, monitor); // create the pom.xml ST template = projectSTG.getInstanceOf("pom"); template.add("name", projectName); template.add("artifactId", artifactId); template.add("version", version); template.add("author", author); template.add("email", email); template.add("mainClass", mainClass); template.add("package", packageString); createFile(project, null, "pom.xml", monitor, template); // create the log4J.properties template = projectSTG.getInstanceOf("log4J"); template.add("package", packageString); template.add("mainClass", mainClass); createFile(project, srcMainJava, "log4j.properties", monitor, template); // create the .gitignore template = projectSTG.getInstanceOf("ignore"); createFile(project, null, ".gitignore", monitor, template); // create the README template = projectSTG.getInstanceOf("readme"); template.add("name", projectName); createFile(project, null, "README.md", monitor, template); // create package // create JUnit if (generateJUnit) { IPackageFragment pack = javaProject.getPackageFragmentRoot(srcTestJava) .createPackageFragment(packageString, false, null); template = projectSTG.getInstanceOf("junit"); template.add("name", mainClass + "Test"); template.add("package", packageString); template.add("classUnderTest", mainClass); pack.createCompilationUnit(mainClass + "Test" + ".java", template.render(), false, monitor); } // create main class IPackageFragment pack = javaProject.getPackageFragmentRoot(srcMainJava) .createPackageFragment(packageString, false, null); template = projectSTG.getInstanceOf("mainClass"); template.add("name", mainClass); template.add("package", packageString); template.add("author", author); template.add("seedNode", seedNode); template.add("port", port); final ICompilationUnit cu = pack.createCompilationUnit(mainClass + ".java", template.render(), false, monitor); // open editor on main class monitor.setTaskName("Opening file for editing..."); getShell().getDisplay().asyncExec(new Runnable() { public void run() { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getActivePage(); try { IEditorPart editor = IDE.openEditor(page, (IFile) cu.getResource(), true); } catch (PartInitException e) { } } }); } catch (CoreException e) { throw new InvocationTargetException(e); } finally { monitor.done(); } } }; try { getContainer().run(true, false, op); } catch (InterruptedException e) { return false; } catch (InvocationTargetException e) { Throwable realException = e.getTargetException(); MessageDialog.openError(getShell(), "Error", realException.getMessage()); return false; } return true; }
From source file:com.amashchenko.eclipse.strutsclipse.ProjectUtil.java
License:Apache License
public static List<JarEntryStorage> findJarEntryStrutsResources(final IDocument document) { List<JarEntryStorage> results = new ArrayList<JarEntryStorage>(); try {/*from w w w. j a v a2 s .c om*/ IJavaProject javaProject = getCurrentJavaProject(document); if (javaProject != null && javaProject.exists()) { IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); for (IPackageFragmentRoot root : roots) { if (root.isArchive()) { Object[] nonJavaResources = root.getNonJavaResources(); for (Object nonJavaRes : nonJavaResources) { if (nonJavaRes instanceof IJarEntryResource) { IJarEntryResource jarEntry = (IJarEntryResource) nonJavaRes; if (jarEntry.isFile() && (StrutsXmlConstants.STRUTS_DEFAULT_FILE_NAME .equals(jarEntry.getName()) || StrutsXmlConstants.STRUTS_PLUGIN_FILE_NAME.equals(jarEntry.getName()))) { results.add(new JarEntryStorage(root.getPath(), jarEntry)); } } } } } } } catch (JavaModelException e) { e.printStackTrace(); } return results; }
From source file:com.amazonaws.eclipse.lambda.project.wizard.NewLambdaJavaFunctionProjectWizard.java
License:Open Source License
private static void addTestDirectoryToClasspath(IProject project) { try {/*from w ww. j a va 2 s . c o m*/ IJavaProject javaProj = JavaCore.create(project); IFolder tstFolder = project.getFolder("tst"); IPackageFragmentRoot tstRoot = javaProj.getPackageFragmentRoot(tstFolder); IClasspathEntry[] originalCp = javaProj.getRawClasspath(); IClasspathEntry[] augmentedCp = new IClasspathEntry[originalCp.length + 1]; System.arraycopy(originalCp, 0, augmentedCp, 0, originalCp.length); augmentedCp[originalCp.length] = JavaCore.newSourceEntry(tstRoot.getPath()); javaProj.setRawClasspath(augmentedCp, null); } catch (Exception e) { LambdaPlugin.getDefault().warn("Failed to add tst directory to the classpath", e); } }
From source file:com.amazonaws.eclipse.lambda.project.wizard.util.FunctionProjectUtil.java
License:Open Source License
private static void addTestDirectoryToClasspath(IProject project) { try {/*from w w w . j av a2 s .c o m*/ IJavaProject javaProj = JavaCore.create(project); IFolder tstFolder = project.getFolder("tst"); IPackageFragmentRoot tstRoot = javaProj.getPackageFragmentRoot(tstFolder); if (javaProj.isOnClasspath(tstRoot)) return; IClasspathEntry[] originalCp = javaProj.getRawClasspath(); IClasspathEntry[] augmentedCp = new IClasspathEntry[originalCp.length + 1]; System.arraycopy(originalCp, 0, augmentedCp, 0, originalCp.length); augmentedCp[originalCp.length] = JavaCore.newSourceEntry(tstRoot.getPath()); javaProj.setRawClasspath(augmentedCp, null); } catch (Exception e) { LambdaPlugin.getDefault().warn("Failed to add tst directory to the classpath", e); } }
From source file:com.android.ide.eclipse.adt.internal.editors.binaryxml.BinaryXMLMultiPageEditorPart.java
License:Open Source License
@Override protected void setInput(IEditorInput input) { if (input instanceof JarEntryEditorInput) { JarEntryEditorInput jarInput = (JarEntryEditorInput) input; IStorage storage = jarInput.getStorage(); if (storage instanceof JarEntryFile) { JarEntryFile jarEntryFile = (JarEntryFile) storage; IPackageFragmentRoot fragmentRoot = jarEntryFile.getPackageFragmentRoot(); if (fragmentRoot == null) { super.setInput(input); return; }/* w ww .jav a 2s .com*/ IPath path = fragmentRoot.getPath(); if (path == null) { super.setInput(input); return; } path = path.removeLastSegments(1); IPath filePath = path.append(SdkConstants.FD_DATA) .append(jarEntryFile.getFullPath().toPortableString()); File file = new File(filePath.toOSString()); if (!(file.isFile())) { super.setInput(input); return; } try { XmlStorageEditorInput newInput = new XmlStorageEditorInput(new FileStorage(file)); super.setInput(newInput); return; } catch (Exception e) { AdtPlugin.log(e, e.getMessage(), null); } } } super.setInput(input); }
From source file:com.blackducksoftware.integration.eclipseplugin.common.services.ProjectInformationService.java
License:Apache License
public URL getBinaryDependencyFilepath(final IPackageFragmentRoot packageFragmentRoot) { try {/*from w w w .j a v a 2s .co m*/ if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_BINARY) { return packageFragmentRoot.getPath().toFile().toURI().toURL(); } } catch (final JavaModelException e) { /* * If root does not exist or exception occurs while accessing * resource, do not add its filepath to the list of binary * dependency filepaths */ } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; }
From source file:com.codenvy.ide.ext.java.server.internal.core.NameLookup.java
License:Open Source License
/** * Returns the package fragment whose path matches the given * (absolute) path, or <code>null</code> if none exist. The domain of * the search is bounded by the classpath of the <code>IJavaProject</code> * this <code>NameLookup</code> was obtained from. * The path can be://from www .j av a2s .c o m * - internal to the workbench: "/Project/src" * - external to the workbench: "c:/jdk/classes.zip/java/lang" */ public IPackageFragment findPackageFragment(IPath path) { if (!path.isAbsolute()) { throw new IllegalArgumentException(Messages.path_mustBeAbsolute); } /* * TODO (jerome) this code should rather use the package fragment map to find the candidate package, then * check if the respective enclosing root maps to the one on this given IPath. */ IResource possibleFragment = ResourcesPlugin.getWorkspace().getRoot().findMember(path); if (possibleFragment == null) { //external jar for (int i = 0; i < this.packageFragmentRoots.length; i++) { IPackageFragmentRoot root = this.packageFragmentRoots[i]; if (!root.isExternal()) { continue; } IPath rootPath = root.getPath(); if (rootPath.isPrefixOf(path)) { String name = path.toOSString(); // + 1 is for the File.separatorChar name = name.substring(rootPath.toOSString().length() + 1, name.length()); name = name.replace(File.separatorChar, '.'); IJavaElement[] list = null; try { list = root.getChildren(); } catch (JavaModelException npe) { continue; // the package fragment root is not present; } int elementCount = list.length; for (int j = 0; j < elementCount; j++) { IPackageFragment packageFragment = (IPackageFragment) list[j]; if (nameMatches(name, packageFragment, false)) { return packageFragment; } } } } } else { IJavaElement fromFactory = JavaCore.create(possibleFragment); if (fromFactory == null) { return null; } switch (fromFactory.getElementType()) { case IJavaElement.PACKAGE_FRAGMENT: return (IPackageFragment) fromFactory; case IJavaElement.JAVA_PROJECT: // default package in a default root JavaProject project = (JavaProject) fromFactory; try { IClasspathEntry entry = project.getClasspathEntryFor(path); if (entry != null) { IPackageFragmentRoot root = project.getPackageFragmentRoot(project.getResource()); Object defaultPkgRoot = this.packageFragments.get(CharOperation.NO_STRINGS); if (defaultPkgRoot == null) { return null; } if (defaultPkgRoot instanceof PackageFragmentRoot && defaultPkgRoot.equals(root)) return ((PackageFragmentRoot) root).getPackageFragment(CharOperation.NO_STRINGS); else { IPackageFragmentRoot[] roots = (IPackageFragmentRoot[]) defaultPkgRoot; for (int i = 0; i < roots.length; i++) { if (roots[i].equals(root)) { return ((PackageFragmentRoot) root) .getPackageFragment(CharOperation.NO_STRINGS); } } } } } catch (JavaModelException e) { return null; } return null; case IJavaElement.PACKAGE_FRAGMENT_ROOT: return ((PackageFragmentRoot) fromFactory).getPackageFragment(CharOperation.NO_STRINGS); } } return null; }