List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoots
IPackageFragmentRoot[] getPackageFragmentRoots() throws JavaModelException;
From source file:org.eclipse.virgo.ide.export.BundleExportUtils.java
License:Open Source License
/** * Find manifest file given a java project * * @param project//from w w w . j ava2 s. com * @return */ public static IResource getOutputManifestFile(IJavaProject project) { try { Set<IPath> outputPaths = new HashSet<IPath>(); outputPaths.add(project.getOutputLocation()); IPackageFragmentRoot[] roots = project.getPackageFragmentRoots(); for (IPackageFragmentRoot root : roots) { if (root != null) { IClasspathEntry cpEntry = root.getRawClasspathEntry(); if (cpEntry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { IPath location = cpEntry.getOutputLocation(); if (location != null) { outputPaths.add(location); } } } } for (IPath outputPath : outputPaths) { IResource manifest = getManifestFile(outputPath, project.getProject()); if (manifest != null) { return manifest; } } } catch (JavaModelException e) { // No error handling existed before. Are these expected?! throw new RuntimeException(e); } catch (MalformedURLException e) { // No error handling existed before. Are these expected?! throw new RuntimeException(e); } return null; }
From source file:org.eclipse.virgo.ide.export.BundleExportUtils.java
License:Open Source License
/** * Create export operation given project to be exported and location of the JAR. * * @param project/*from w ww. j a v a 2s.c om*/ * @param jarLocation * @param shell * @param warningMessages * @return */ public static IJarExportRunnable createExportOperation(IJavaProject project, IPath jarLocation, Shell shell, List<IStatus> warnings) { JarPackageData jarPackage = new JarPackageData(); jarPackage.setJarLocation(jarLocation); jarPackage.setExportClassFiles(true); jarPackage.setExportJavaFiles(false); jarPackage.setOverwrite(true); jarPackage.setExportErrors(true); jarPackage.setExportWarnings(true); jarPackage.setBuildIfNeeded(true); Set<Object> outputFiles = new LinkedHashSet<Object>(); try { Set<IClasspathEntry> entries = ServerModuleDelegate.getSourceClasspathEntries(project.getProject(), false); for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) { if (entries.contains(root.getRawClasspathEntry())) { outputFiles.add(root); } } } catch (JavaModelException e) { // TODO add error handling throw new RuntimeException(e); } jarPackage.setElements(outputFiles.toArray()); setManifestFile(project, jarPackage, shell, warnings); return jarPackage.createJarExportRunnable(shell); }
From source file:org.eclipse.vjet.eclipse.javalaunch.utils.EclipseResourceUtils.java
License:Open Source License
/** * Find the source folder for this resource. For instance if the resource is * in "/src/main/java/com/ebay/blogs/login" then return "src/main/java" * /*from w w w . j ava 2 s . co m*/ * To do this we must iterate through all the package fragments and look for * source folders. If this is the source folder for the resource then remove * the source folder path. * * @param resource * @param jProject * @return */ protected static IPath getResourcePath(IResource resource, IJavaProject jProject) { /** */ if (jProject != null) { try { IPackageFragmentRoot[] packageRoots = jProject.getPackageFragmentRoots(); if (packageRoots != null) { // Look through the package fragment roots for (IPackageFragmentRoot packageFragmentRoot : packageRoots) { // If this is a source folder if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { // If this is the source folder for the resource we are interested in. if (packageFragmentRoot.getPath().isPrefixOf(resource.getFullPath())) { return packageFragmentRoot.getPath(); } } } } } catch (JavaModelException e) { e.printStackTrace(); throw new RuntimeException(e); } } return null; }
From source file:org.eclipse.wb.internal.core.utils.jdt.core.CodeUtils.java
License:Open Source License
/** * @return the {@link IPackageFragmentRoot} that is parent of given {@link IJavaElement} or first * {@link IPackageFragmentRoot} of {@link IJavaProject}. *///from w w w.j a v a 2s . com public static IPackageFragmentRoot getPackageFragmentRoot(IJavaElement element) throws JavaModelException { if (element != null) { // try to find valid parent IPackageFragmentRoot { IPackageFragmentRoot root = (IPackageFragmentRoot) element .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); if (root != null && root.getKind() == IPackageFragmentRoot.K_SOURCE) { return root; } } // use IPackageFragmentRoot of IJavaProject { IJavaProject javaProject = element.getJavaProject(); if (javaProject != null && javaProject.exists()) { for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { return root; } } } } } // invalid element return null; }
From source file:org.eclipse.wst.xml.search.editor.internal.contentassist.JavaCompletionUtils.java
License:Open Source License
private static IPackageFragment getPackageFragment(IJavaProject project, String prefix) throws JavaModelException { int dot = prefix.lastIndexOf('.'); if (dot > -1) { String packageName = prefix.substring(0, dot); IPackageFragmentRoot aipackagefragmentroot1[]; int l = (aipackagefragmentroot1 = project.getPackageFragmentRoots()).length; for (int j = 0; j < l; j++) { IPackageFragmentRoot root = aipackagefragmentroot1[j]; IPackageFragment p = root.getPackageFragment(packageName); if (p != null && p.exists()) return p; }/*w ww .j a va 2 s.c o m*/ IPackageFragment packages[] = project.getPackageFragments(); IPackageFragment aipackagefragment[]; int j1 = (aipackagefragment = packages).length; for (int i1 = 0; i1 < j1; i1++) { IPackageFragment p = aipackagefragment[i1]; if (p.getElementName().equals(packageName)) return p; } } else { IPackageFragmentRoot aipackagefragmentroot[]; int k = (aipackagefragmentroot = project.getAllPackageFragmentRoots()).length; for (int i = 0; i < k; i++) { IPackageFragmentRoot p = aipackagefragmentroot[i]; if (p.getKind() == 1) return p.getPackageFragment(""); } } return project.getPackageFragments()[0]; }
From source file:org.eclipse.wst.xml.search.editor.util.JdtUtils.java
License:Open Source License
public static IResource[] getJavaProjectSrcFolders(IProject project) { IJavaProject javaProject = getJavaProject(project); if (javaProject != null) { try {//from w w w.j av a 2s.c o m List<IResource> sources = new ArrayList<IResource>(); IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); IPackageFragmentRoot root = null; for (int i = 0; i < roots.length; i++) { root = roots[i]; if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { sources.add(root.getCorrespondingResource()); } } return sources.toArray(IMultiResourceProvider.EMPTY_RESOURCE); } catch (JavaModelException e) { Trace.trace(Trace.SEVERE, (new StringBuilder("Error getting Java project src for project '")) .append(project.getName()).append("'").toString(), e); } } return null; }
From source file:org.eclipse.wst.xml.search.editor.util.JdtUtils.java
License:Open Source License
public static IJarEntryResource getJavaResourceFileFromBinary(IProject project, String jarNamePattern, String packageName, String fileName) { IJavaProject javaProject = getJavaProject(project); if (javaProject != null) { try {/*from w w w. ja v a 2 s . co m*/ IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); IPackageFragmentRoot root = null; for (int i = 0; i < roots.length; i++) { root = roots[i]; if (root.getKind() == IPackageFragmentRoot.K_BINARY) { if (StringUtils.isEmpty(jarNamePattern) || root.getElementName().startsWith(jarNamePattern)) { Object[] nonJavaResources = null; if (packageName != null) { IPackageFragment fragment = root.getPackageFragment(packageName); if (fragment != null) { nonJavaResources = fragment.getNonJavaResources(); } } else { nonJavaResources = root.getNonJavaResources(); } if (nonJavaResources != null) { Object nonJavaResource = null; for (int j = 0; j < nonJavaResources.length; j++) { nonJavaResource = nonJavaResources[j]; if (nonJavaResource instanceof IJarEntryResource) { IJarEntryResource r = (IJarEntryResource) nonJavaResource; if (r.isFile() && fileName.equals(r.getName())) { return r; } } } } } } } } catch (JavaModelException e) { Trace.trace(Trace.SEVERE, (new StringBuilder("Error getting Java project src for project '")) .append(project.getName()).append("'").toString(), e); } } return null; }
From source file:org.eclipse.wst.xml.search.editor.util.JdtUtils.java
License:Open Source License
public static IJarEntryResource[] getJavaResourcesFileFromBinary(IProject project, String jarNamePattern, String packageName, String fileName) { Collection<IJarEntryResource> files = new ArrayList<IJarEntryResource>(); IJavaProject javaProject = getJavaProject(project); if (javaProject != null) { try {/* www.j a va2s.c om*/ IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); IPackageFragmentRoot root = null; for (int i = 0; i < roots.length; i++) { root = roots[i]; if (root.getKind() == IPackageFragmentRoot.K_BINARY) { if (StringUtils.isEmpty(jarNamePattern) || root.getElementName().contains(jarNamePattern)) { Object[] nonJavaResources = null; if (packageName != null) { IPackageFragment fragment = root.getPackageFragment(packageName); if (fragment != null) { nonJavaResources = fragment.getNonJavaResources(); } } else { nonJavaResources = root.getNonJavaResources(); } if (nonJavaResources != null) { Object nonJavaResource = null; for (int j = 0; j < nonJavaResources.length; j++) { nonJavaResource = nonJavaResources[j]; if (nonJavaResource instanceof IJarEntryResource) { IJarEntryResource r = (IJarEntryResource) nonJavaResource; if (r.isFile() && r.getName().contains(fileName)) { files.add(r); } } } } } } } } catch (JavaModelException e) { Trace.trace(Trace.SEVERE, (new StringBuilder("Error getting Java project src for project '")) .append(project.getName()).append("'").toString(), e); } } return files.toArray(new IJarEntryResource[files.size()]); }
From source file:org.eclipse.xtend.ide.builder.XtendParallelBuilderParticipant.java
License:Open Source License
public List<IPath> getSourceFolderPathes(IProject project) { List<IPath> sourceFolder = Lists.newArrayList(); try {/*from w w w.j a va 2s. c om*/ if (project.isOpen() && project.hasNature(JavaCore.NATURE_ID)) { IJavaProject javaProject = JavaCore.create(project); List<IPackageFragmentRoot> packageFragmentRoots = Arrays .asList(javaProject.getPackageFragmentRoots()); for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) { if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { IPath path = packageFragmentRoot.getPath(); sourceFolder.add(path); } } } } catch (JavaModelException e) { if (!e.isDoesNotExist()) logger.error(e.getMessage(), e); } catch (CoreException e) { logger.error(e.getMessage(), e); } return sourceFolder; }
From source file:org.eclipse.xtend.ide.validator.XtendUIValidator.java
License:Open Source License
protected String getExpectedPackageName(XtendFile xtendFile) { URI fileURI = xtendFile.eResource().getURI(); for (Pair<IStorage, IProject> storage : storage2UriMapper.getStorages(fileURI)) { if (storage.getFirst() instanceof IFile) { IPath fileWorkspacePath = storage.getFirst().getFullPath(); IJavaProject javaProject = JavaCore.create(storage.getSecond()); if (javaProject != null && javaProject.exists() && javaProject.isOpen()) { try { for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { if (!root.isArchive() && !root.isExternal()) { IResource resource = root.getResource(); if (resource != null) { IPath sourceFolderPath = resource.getFullPath(); if (sourceFolderPath.isPrefixOf(fileWorkspacePath)) { IPath claspathRelativePath = fileWorkspacePath .makeRelativeTo(sourceFolderPath); return claspathRelativePath.removeLastSegments(1).toString().replace("/", "."); }/* w w w .j a v a2 s .co m*/ } } } } catch (JavaModelException e) { LOG.error("Error resolving expected path for XtendFile", e); } } } } return null; }