List of usage examples for org.eclipse.jdt.core IJavaProject getAllPackageFragmentRoots
IPackageFragmentRoot[] getAllPackageFragmentRoots() throws JavaModelException;
From source file:org.eclipse.e4.xwt.tools.ui.designer.wizards.ExternalizeStringsWizard.java
License:Open Source License
private void getDefaultAccessorContents() { IFile inputFile = designer.getFile(); IContainer container = inputFile.getParent(); IJavaElement javaElement = JavaCore.create(container); IPackageFragmentRoot defaultRoot = null; if (javaElement != null && javaElement.exists()) { IJavaProject javaProject = JavaCore.create(inputFile.getProject()); try {//w w w. j ava 2 s. c o m IPackageFragmentRoot fragmentRoot[] = javaProject.getAllPackageFragmentRoots(); for (int i = 0; i < fragmentRoot.length; i++) { if (fragmentRoot[i].getKind() == IPackageFragmentRoot.K_SOURCE) { defaultRoot = fragmentRoot[i]; for (IJavaElement element : defaultRoot.getChildren()) { if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) { javaElement = element; } } break; } } } catch (JavaModelException e) { e.printStackTrace(); } } if (javaElement == null || !(javaElement instanceof IPackageFragment)) { String projectName = inputFile.getProject().getName(); externalizeStringsWizardPage.setErrorMessage("The project " + projectName + " has not source folder."); return; } externalizeStringsWizardPage.setDefaultRoot(defaultRoot); externalizeStringsWizardPage.setDefaultFolder(defaultRoot.getResource().getFullPath().toString()); externalizeStringsWizardPage.setDefaultPackage(javaElement.getElementName()); }
From source file:org.eclipse.emf.editor.provider.ClasspathUriResolver.java
License:Open Source License
private URI findResourceInWorkspace(IJavaProject javaProject, URI classpathUri) throws JavaModelException, CoreException { Path fullPath = new Path(classpathUri.path()); String projectRelativePath = fullPath.toString(); if (javaProject.exists()) { IPackageFragmentRoot[] allPackageFragmentRoots = javaProject.getAllPackageFragmentRoots(); for (IPackageFragmentRoot packageFragmentRoot : allPackageFragmentRoots) { IResource correspondingResource = packageFragmentRoot.getCorrespondingResource(); if (correspondingResource != null) { if (correspondingResource instanceof IFile) { // jar file JarPackageFragmentRoot jarPackageFragmentRoot = (JarPackageFragmentRoot) JavaCore .createJarPackageFragmentRootFrom((IFile) correspondingResource); if (jarPackageFragmentRoot != null) { ZipFile zipFile = jarPackageFragmentRoot.getJar(); if (zipFile != null) { ZipEntry zipEntry = zipFile.getEntry(projectRelativePath.substring(1)); if (zipEntry != null) { return URI.createURI("jar:" + "platform:/resource" + correspondingResource.getFullPath() + "!" + projectRelativePath, true); }/* w ww . ja va 2s .c o m*/ } } } else { // plain file IFolder rootFolder = (IFolder) correspondingResource; IResource modelFile = rootFolder.findMember(projectRelativePath); if (modelFile != null && modelFile.exists() && modelFile instanceof IFile) { URI platformResourceUri = URI .createPlatformResourceURI(modelFile.getFullPath().toString(), true); return platformResourceUri; } } } } } return classpathUri; }
From source file:org.eclipse.emf.mwe.ui.workflow.util.ProjectIncludingResourceLoader.java
License:Open Source License
/** * Builds a classloader for a Java project from the workspace. * @param project An Eclipse project//from w w w. ja v a2 s. com * @throws CoreException */ public ClassLoader createClassLoader(final IProject project) throws CoreException { IJavaProject jp = JavaCore.create(project); // IClasspathEntry[] javacp = jp.getResolvedClasspath(true); IPackageFragmentRoot[] roots = jp.getAllPackageFragmentRoots(); URL[] urls = new URL[roots.length]; IPath wsLocation = ResourcesPlugin.getWorkspace().getRoot().getLocation(); for (int i = 0; i < roots.length; i++) { try { IPath path = roots[i].getPath(); File file = path.toFile(); if (!file.exists()) { path = wsLocation.append(path); file = path.toFile(); } URL url = file.toURL(); urls[i] = url; } catch (MalformedURLException e) { Activator.logError(e); } } return new URLClassLoader(urls); }
From source file:org.eclipse.jdt.internal.core.JavaModelManager.java
License:Open Source License
private Map secondaryTypesSearching(IJavaProject project, boolean waitForIndexes, IProgressMonitor monitor, final PerProjectInfo projectInfo) throws JavaModelException { if (VERBOSE || BasicSearchEngine.VERBOSE) { StringBuffer buffer = new StringBuffer("JavaModelManager.secondaryTypesSearch("); //$NON-NLS-1$ buffer.append(project.getElementName()); buffer.append(','); buffer.append(waitForIndexes);/*from w ww . j a va2 s . com*/ buffer.append(')'); Util.verbose(buffer.toString()); } final Hashtable secondaryTypes = new Hashtable(3); IRestrictedAccessTypeRequestor nameRequestor = new IRestrictedAccessTypeRequestor() { public void acceptType(int modifiers, char[] packageName, char[] simpleTypeName, char[][] enclosingTypeNames, String path, AccessRestriction access) { String key = packageName == null ? "" : new String(packageName); //$NON-NLS-1$ HashMap types = (HashMap) secondaryTypes.get(key); if (types == null) types = new HashMap(3); types.put(new String(simpleTypeName), path); secondaryTypes.put(key, types); } }; // Build scope using prereq projects but only source folders IPackageFragmentRoot[] allRoots = project.getAllPackageFragmentRoots(); int length = allRoots.length, size = 0; IPackageFragmentRoot[] allSourceFolders = new IPackageFragmentRoot[length]; for (int i = 0; i < length; i++) { if (allRoots[i].getKind() == IPackageFragmentRoot.K_SOURCE) { allSourceFolders[size++] = allRoots[i]; } } if (size < length) { System.arraycopy(allSourceFolders, 0, allSourceFolders = new IPackageFragmentRoot[size], 0, size); } // Search all secondary types on scope new BasicSearchEngine().searchAllSecondaryTypeNames(allSourceFolders, nameRequestor, waitForIndexes, monitor); // Build types from paths Iterator packages = secondaryTypes.values().iterator(); while (packages.hasNext()) { HashMap types = (HashMap) packages.next(); Iterator names = types.entrySet().iterator(); while (names.hasNext()) { Map.Entry entry = (Map.Entry) names.next(); String typeName = (String) entry.getKey(); String path = (String) entry.getValue(); if (org.eclipse.jdt.internal.core.util.Util.isJavaLikeFileName(path)) { IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(path)); ICompilationUnit unit = JavaModelManager.createCompilationUnitFrom(file, null); IType type = unit.getType(typeName); types.put(typeName, type); // replace stored path with type itself } else { names.remove(); } } } // Store result in per project info cache if still null or there's still an indexing cache (may have been set by another thread...) if (projectInfo.secondaryTypes == null || projectInfo.secondaryTypes.get(INDEXED_SECONDARY_TYPES) != null) { projectInfo.secondaryTypes = secondaryTypes; if (VERBOSE || BasicSearchEngine.VERBOSE) { System.out.print(Thread.currentThread() + " -> secondary paths stored in cache: "); //$NON-NLS-1$ System.out.println(); Iterator entries = secondaryTypes.entrySet().iterator(); while (entries.hasNext()) { Map.Entry entry = (Map.Entry) entries.next(); String qualifiedName = (String) entry.getKey(); Util.verbose(" - " + qualifiedName + '-' + entry.getValue()); //$NON-NLS-1$ } } } return projectInfo.secondaryTypes; }
From source file:org.eclipse.jpt.common.core.internal.utility.JavaProjectTools.java
License:Open Source License
private static Iterable<IType> getTypes_(IJavaProject javaProject) throws JavaModelException { List<IType> typesList = new ArrayList<IType>(); IPackageFragmentRoot[] pkgRoots = javaProject.getAllPackageFragmentRoots(); for (IPackageFragmentRoot root : pkgRoots) { IJavaElement[] jElements = root.getChildren(); for (IJavaElement jElement : jElements) { if (jElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT) { ICompilationUnit[] units = ((IPackageFragment) jElement).getCompilationUnits(); for (ICompilationUnit unit : units) { CollectionTools.addAll(typesList, unit.getTypes()); }/* ww w .j a va2 s. c o m*/ } } } return typesList; }
From source file:org.eclipse.jpt.jpa.eclipselink.ui.internal.entity.data.model.EclipseLinkDynamicEntityDataModelProvider.java
License:Open Source License
/** * Returns all the the existing source path roots cross the selected project * @return a set of IPackageFragmentRoot with the kind of source path *//*from w w w . j a v a2s . c o m*/ protected IPackageFragmentRoot[] getJavaPackageFragmentRoots() { JpaProject jpaProject = getJpaProject(); IPackageFragmentRoot[] packRoots = new IPackageFragmentRoot[0]; List<IPackageFragmentRoot> rootList = new ArrayList<IPackageFragmentRoot>(); if (jpaProject != null) { IJavaProject javaProject = jpaProject.getJavaProject(); if (javaProject != null) { try { packRoots = javaProject.getAllPackageFragmentRoots(); for (IPackageFragmentRoot root : packRoots) { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { rootList.add(root); } } packRoots = new IPackageFragmentRoot[rootList.size()]; rootList.toArray(packRoots); } catch (JavaModelException e) { // fall through JptJpaEclipseLinkUiPlugin.instance().logError(e); } } } return packRoots; }
From source file:org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPASolver.java
License:Open Source License
private void unregisterDeltedEntity(IResourceChangeEvent event) { if ((event.getType() == IResourceChangeEvent.PRE_CLOSE) || (event.getType() == IResourceChangeEvent.PRE_DELETE)) return;// www . ja v a2 s . c om IResourceDelta changedDelta = event.getDelta(); IResourceDelta[] deltas = changedDelta.getAffectedChildren(); for (IResourceDelta delta : deltas) { final IResource resource = delta.getResource(); if (resource != null && resource.exists()) { if (resource instanceof IProject) { IProject project = (IProject) resource; for (IResourceDelta deltaResource : delta.getAffectedChildren()) { List<IResourceDelta> resources = new ArrayList<IResourceDelta>(); resources = findDeletedResource(deltaResource, resources); for (IResourceDelta resourceDelta : resources) { if (resourceDelta.getResource() instanceof File) { IFile file = this.eclipseFacade.getWorkspace().getRoot() .getFile(((File) resourceDelta.getResource()).getFullPath()); if (!file.exists() && file.getFileExtension().equals("java")) { //$NON-NLS-1$ try { JpaProject jpaProject = JpaArtifactFactory.instance() .getJpaProject((IProject) resource); if (jpaProject != null) { IJavaProject javaProject = JavaCore.create(project); IPackageFragmentRoot[] fragmentRoots = javaProject .getAllPackageFragmentRoots(); for (IPackageFragmentRoot fragmentRoot : fragmentRoots) { if ((fragmentRoot instanceof PackageFragmentRoot) && fragmentRoot.getKind() == PackageFragmentRoot.K_SOURCE) { PackageFragmentRoot packageFragmentRoot = (PackageFragmentRoot) fragmentRoot; String sourcefolder = packageFragmentRoot.getResource() .getName(); String[] fq = file.getFullPath().toString().split(sourcefolder); String fqName = fq[1].replace("/", "."); //$NON-NLS-1$ //$NON-NLS-2$ fqName = fqName.replaceFirst(".", "").replace(".java", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //JPAEditorUtil.createUnregisterEntityFromXMLJob(jpaProject, fqName); } } } } catch (CoreException e) { JPADiagramEditorPlugin.logError(e); } } } } } } } } }
From source file:org.eclipse.jst.jee.model.internal.WebAnnotationReader.java
License:Open Source License
@Override protected void loadModel() throws CoreException { IJavaProject javaProject = JavaCore.create(facetedProject.getProject()); final Collection<ICompilationUnit> javaUnits = new HashSet<ICompilationUnit>(); for (final IPackageFragmentRoot root : javaProject.getAllPackageFragmentRoots()) { visitJavaFiles(javaUnits, root); }//from www. jav a 2 s.c o m annotationFactory = WebAnnotationFactory.createFactory(); modelToInterfaceUnit = new ManyToOneRelation<JavaEEObject, ICompilationUnit>(); modelToUnit = new ManyToOneRelation<JavaEEObject, ICompilationUnit>(); for (ICompilationUnit unit : javaUnits) { Result result = analyzeCompilationUnit(unit); if (result == null) continue; processResult(unit, result); } }
From source file:org.eclipse.jst.jsf.core.jsfappconfig.AnnotationJSFAppConfigProvider.java
License:Open Source License
private void discoverFacesConfig() throws CoreException { facesConfig = FacesConfigFactory.eINSTANCE.createFacesConfigType(); IJavaProject jProject = JavaCore.create(this.jsfAppConfigLocater.getJSFAppConfigManager().getProject()); IPackageFragmentRoot[] roots = jProject.getAllPackageFragmentRoots(); List<IPackageFragmentRoot> scannableRoots = new ArrayList<IPackageFragmentRoot>(); if (roots != null) { for (IPackageFragmentRoot root : roots) { AnnotationPackageFragmentRoot facesRoot = new AnnotationPackageFragmentRoot(root); if (facesRoot.canContainAnnotatedComponents()) { scannableRoots.add(root); }//from w w w .jav a2 s. c o m } } if (!scannableRoots.isEmpty()) { findAnnotatedComponents(jProject, scannableRoots); } }
From source file:org.eclipse.libra.facet.OSGiBundleFacetInstallDelegate.java
License:Open Source License
private IPackageExportDescription[] getPackageExports(IProject project) throws CoreException { IBundleProjectService bundleProjectService = LibraFacetPlugin.getDefault().getBundleProjectService(); List<IPackageExportDescription> list = new ArrayList<IPackageExportDescription>(); if (isJavaProject(project)) { IJavaProject javaProject = JavaCore.create(project); IPackageFragmentRoot[] fragmentRoots = javaProject.getAllPackageFragmentRoots(); for (IPackageFragmentRoot fragmentRoot : fragmentRoots) { if (fragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE && fragmentRoot.getParent().equals(javaProject)) { IJavaElement[] elements = fragmentRoot.getChildren(); for (IJavaElement element : elements) { IPackageFragment fragment = (IPackageFragment) element; if (fragment.containsJavaResources()) { list.add(bundleProjectService.newPackageExport(fragment.getElementName(), null, true, null));/*from w w w.jav a 2s . c o m*/ } } } } } return list.toArray(new IPackageExportDescription[list.size()]); }