List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoots
IPackageFragmentRoot[] getPackageFragmentRoots() throws JavaModelException;
From source file:org.eclipse.xtend.shared.ui.core.builder.XtendXpandBuilder.java
License:Open Source License
protected void fullBuild(final IProgressMonitor monitor) throws CoreException { final IXtendXpandProject project = Activator.getExtXptModelManager() .findProject(getProject().getFullPath()); if (project != null) { getProject().accept(new XtendXpandDeltaVisitor(monitor)); final IJavaProject jp = JavaCore.create(getProject()); final IPackageFragmentRoot[] roots = jp.getPackageFragmentRoots(); final Set<String> extensions = new HashSet<String>(); final ResourceContributor[] contributors = Activator.getRegisteredResourceContributors(); for (final ResourceContributor resourceContributor : contributors) { extensions.add(resourceContributor.getFileExtension()); }/* www. j a v a 2 s . co m*/ for (final IPackageFragmentRoot root : roots) { if (root.isArchive()) { try { root.open(monitor); try { final ZipFile zip = ((JarPackageFragmentRoot) root).getJar(); final Enumeration<? extends ZipEntry> entries = zip.entries(); while (entries.hasMoreElements()) { final ZipEntry entry = entries.nextElement(); for (final String ext : extensions) { final String name = entry.getName(); if (name.endsWith(ext)) { final String fqn = name.substring(0, name.length() - ext.length() - 1) .replaceAll("/", "::"); final ResourceID resourceID = new ResourceID(fqn, ext); final IStorage findStorage = JDTUtil.loadFromJar(resourceID, root); project.findXtendXpandResource(findStorage); } } } } finally { root.close(); } } catch (CoreException ex) { XtendLog.logError(ex); } } } } else { XtendLog.logInfo("Couldn't create Xpand project for project " + getProject().getName()); } }
From source file:org.eclipse.xtend.shared.ui.core.internal.JDTUtil.java
License:Open Source License
/** * find the path for the oaw name space and extension * /*from www. java 2 s. co m*/ * @param project * - the javaproject * @param oawns * - oaw name space (i.e. 'my::xtend::File') * @param ext * - file extension (i.e. 'ext') * @return */ public static IStorage findStorage(IJavaProject project, ResourceID id, boolean searchJars) { IPath p = path(id); try { IPackageFragmentRoot[] roots = project.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { IPackageFragmentRoot root = roots[i]; if (!root.isArchive()) { IContainer rootFolder = null; IResource correspondingResource = root.getCorrespondingResource(); if (correspondingResource instanceof IContainer) { rootFolder = (IContainer) correspondingResource; } else if (root instanceof ExternalPackageFragmentRoot) { IResource resource = ((ExternalPackageFragmentRoot) root).resource(); if (resource instanceof IContainer) { rootFolder = (IContainer) resource; IStorage member = (IStorage) rootFolder.findMember(p); if (member != null) { return member; } } } if (rootFolder != null) { IResource r = project.getProject() .findMember(rootFolder.getProjectRelativePath().append(p)); if (r instanceof IFile) return (IFile) r; } } else if (searchJars) { IStorage storage = loadFromJar(id, root); if (storage != null) return storage; } } } catch (JavaModelException e) { XtendLog.logInfo(e); } return null; }
From source file:org.eclipse.xtend.shared.ui.core.internal.JDTUtil.java
License:Open Source License
public static ResourceID findXtendXpandResourceID(IJavaProject project, IStorage file) { if (file == null) return null; try {/* w w w. j a v a 2 s . c om*/ IPackageFragmentRoot[] roots = project.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { IPackageFragmentRoot root = roots[i]; if (root.getPath().isPrefixOf(file.getFullPath())) { IPath shortOne = file.getFullPath().removeFirstSegments(root.getPath().segmentCount()); String ns = shortOne.removeFileExtension().toString(); ns = patternSlash.matcher(ns).replaceAll("::"); return new ResourceID(ns, shortOne.getFileExtension()); } } } catch (JavaModelException e1) { XtendLog.logInfo(e1); } return null; }
From source file:org.eclipse.xtend.shared.ui.core.internal.JDTUtil.java
License:Open Source License
public static IJavaProject getJProject(IStorage s) { if (s instanceof IFile) { return JavaCore.create(((IFile) s).getProject()); } else {/*www .j ava2 s . c o m*/ IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects(); for (int i = 0; i < projects.length; i++) { IProject project = projects[i]; IJavaProject p = JavaCore.create(project); if (p.exists()) { IPackageFragmentRoot[] roots; try { roots = p.getPackageFragmentRoots(); for (int j = 0; j < roots.length; j++) { IPackageFragmentRoot root = roots[j]; if (root.getPath().isPrefixOf(s.getFullPath())) return p; } } catch (JavaModelException e) { XtendLog.logError(e); } } } } return null; }
From source file:org.eclipse.xtend.typesystem.emf.ui.ProjectAnalyzer.java
License:Open Source License
private void loadMetamodelsForProject(final IJavaProject javaProject, final ResourceSet rs, final IProgressMonitor monitor) { try {/*from w ww . j av a 2s .c o m*/ final String ext = Messages.ProjectAnalyzer_2; if (!javaProject.exists()) return; for (final IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { if (!root.isArchive()) { IResource rootResource = null; if (root instanceof ExternalPackageFragmentRoot) { rootResource = ((ExternalPackageFragmentRoot) root).resource(); } else { rootResource = root.getUnderlyingResource(); } if (rootResource != null) { try { // if (!rootResource.exists() || !rootResource.isAccessible()) rootResource.refreshLocal(IResource.DEPTH_INFINITE, monitor); rootResource.accept(new IResourceVisitor() { public boolean visit(final IResource resource) throws CoreException { if (resource instanceof IFile && ext.equals(((IFile) resource).getFileExtension())) { loadModelFromStorage(rs, (IFile) resource); } return true; } }); } catch (final CoreException e) { EmfToolsLog.logError(e); } } } else { // skip JRE jars if (((JarPackageFragmentRoot) root).getPath().toString().contains(Messages.ProjectAnalyzer_3)) { if (EmfToolsPlugin.trace) { System.out.println(Messages.ProjectAnalyzer_4 + ((JarPackageFragmentRoot) root).getPath().toString()); } continue; } root.open(monitor); try { final ZipFile zip = ((JarPackageFragmentRoot) root).getJar(); final Enumeration<? extends ZipEntry> entries = zip.entries(); while (entries.hasMoreElements()) { final ZipEntry entry = entries.nextElement(); final String name = entry.getName(); if (name.endsWith(ext)) { final String fqn = name.substring(0, name.length() - ext.length() - 1) .replaceAll(Messages.ProjectAnalyzer_5, Messages.ProjectAnalyzer_6); final ResourceID resourceID = new ResourceID(fqn, ext); final IStorage findStorage = JDTUtil.loadFromJar(resourceID, root); if (findStorage != null) { loadModelFromStorage(rs, findStorage); } } } } catch (final CoreException e) { EmfToolsLog.logError(e); } finally { root.close(); } } } } catch (final JavaModelException e) { EmfToolsLog.logError(e); } }
From source file:org.eclipse.xtext.builder.impl.javasupport.JdtToBeBuiltComputer.java
License:Open Source License
@Override public void updateProject(ToBeBuilt toBeBuilt, IProject project, IProgressMonitor monitor) throws CoreException { SubMonitor progress = SubMonitor.convert(monitor, 2); if (progress.isCanceled()) { throw new OperationCanceledException(); }/*from w w w . ja va2 s . c om*/ if (!project.isAccessible()) return; IJavaProject javaProject = JavaCore.create(project); if (javaProject.exists()) { IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); progress.setWorkRemaining(roots.length); final Map<String, Long> updated = Maps.newHashMap(); ProjectOrder orderedProjects = workspace.computeProjectOrder(workspace.getRoot().getProjects()); for (final IPackageFragmentRoot root : roots) { if (progress.isCanceled()) throw new OperationCanceledException(); if (shouldHandle(root) && !isBuiltByUpstream(root, project, orderedProjects.projects)) { Map<URI, IStorage> rootData = jdtUriMapperExtension.getAllEntries(root); for (Map.Entry<URI, IStorage> e : rootData.entrySet()) if (uriValidator.canBuild(e.getKey(), e.getValue())) { toBeBuilt.getToBeDeleted().add(e.getKey()); toBeBuilt.getToBeUpdated().add(e.getKey()); } } progress.worked(1); } synchronized (modificationStampCache) { modificationStampCache.projectToModificationStamp.putAll(updated); } } }
From source file:org.eclipse.xtext.common.types.ui.trace.JarEntryAwareTrace.java
License:Open Source License
protected AbsoluteURI resolvePath(IJavaProject javaProject, SourceRelativeURI path) { try {/* w w w. j a va2s . com*/ for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { IResource resource = root.getResource(); if (resource instanceof IFolder) { IFolder folder = (IFolder) resource; String decodedPath = URI.decode(path.toString()); IResource candidate = folder.findMember(decodedPath); if (candidate != null && candidate.exists()) return new AbsoluteURI(URI .createPlatformResourceURI(resource.getFullPath() + "/" + decodedPath, true)); } } } catch (JavaModelException e) { log.error("Error resolving path", e); } return null; }
From source file:org.eclipse.xtext.ui.containers.JavaProjectsStateHelper.java
License:Open Source License
protected IPackageFragmentRoot getJavaElement(final IFile file) { IJavaProject jp = JavaCore.create(file.getProject()); if (!jp.exists()) return null; IPackageFragmentRoot[] roots;// www . j av a 2s . co m try { roots = jp.getPackageFragmentRoots(); for (IPackageFragmentRoot root : roots) { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { IResource resource2 = root.getUnderlyingResource(); if (resource2.contains(file)) return root; } } } catch (JavaModelException e) { if (!e.isDoesNotExist()) log.error(e.getMessage(), e); } return null; }
From source file:org.eclipse.xtext.ui.generator.trace.DefaultUITraceURIConverter.java
License:Open Source License
protected URI computeTraceURI(URI uri, IJavaProject javaProject) throws JavaModelException { for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { URI prefix = URI.createPlatformResourceURI( root.getResource().getFullPath().addTrailingSeparator().toString(), true); if (isPrefix(prefix, uri)) return uri.deresolve(prefix).trimFragment().trimQuery(); }//w w w.j a v a 2 s .c o m return super.getURIForTrace(uri); }
From source file:org.eclipse.xtext.ui.generator.trace.JavaProjectAwareTraceContribution.java
License:Open Source License
@Nullable protected URI computeTraceURI(URI uri, IJavaProject javaProject) throws JavaModelException { for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { URI prefix = URI.createPlatformResourceURI( root.getResource().getFullPath().addTrailingSeparator().toString(), true); if (traceURIHelper.isPrefix(prefix, uri)) return uri.deresolve(prefix).trimFragment().trimQuery(); }// w w w.ja va2s . com } return null; }