List of usage examples for org.eclipse.jdt.core IJavaProject exists
boolean exists();
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("/", "."); }//from ww w. jav a 2 s .co m } } } } catch (JavaModelException e) { LOG.error("Error resolving expected path for XtendFile", e); } } } } 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 {//from w w w. jav a 2s. c om 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.EmfToolsPlugin.java
License:Open Source License
public ProjectAnalyzer getProjectAnalyzer(final IProject p) { final IJavaProject jp = JavaCore.create(p); if (jp == null || !jp.exists()) return null; ProjectAnalyzer analyzer = projectAnalyzerCache.get(jp); if (analyzer == null) { analyzer = new ProjectAnalyzer(jp); projectAnalyzerCache.put(jp, analyzer); }/*from w w w . j av a 2 s . c o m*/ return analyzer; }
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 ww w .j ava 2 s . 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 ww w . ja va2 s. com*/ 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.builder.impl.javasupport.JdtToBeBuiltComputer.java
License:Open Source License
protected boolean isBuiltByUpstream(IPackageFragmentRoot root, IProject project, IProject[] projectsInCorrectBuildOrder) { for (IProject p : projectsInCorrectBuildOrder) { if (p.equals(project)) return false; if (XtextProjectHelper.hasNature(p) && XtextProjectHelper.hasBuilder(p)) { IJavaProject javaProject = JavaCore.create(p); if (javaProject.exists()) { if (javaProject.isOnClasspath(root)) { if (log.isTraceEnabled()) log.trace("Build of project '" + project.getName() + "' skips indexing classpath entry '" + root.getPath() + "' because it already indexed by " + javaProject.getElementName()); return true; }/*w ww . j a v a2 s . c om*/ } } } return false; }
From source file:org.eclipse.xtext.builder.JavaProjectBasedBuilderParticipant.java
License:Open Source License
@Override public void build(IBuildContext context, IProgressMonitor monitor) throws CoreException { final IProject builtProject = context.getBuiltProject(); IJavaProject javaProject = JavaCore.create(builtProject); if (!javaProject.exists()) return;/*from w w w .j a v a 2 s . c o m*/ final IFolder srcGenFolder = getSrcGenFolder(builtProject); if (!srcGenFolder.exists()) return; if (!isValidOutputFolder(javaProject, srcGenFolder)) return; for (IResourceDescription.Delta delta : context.getDeltas()) { if (monitor.isCanceled()) { throw new OperationCanceledException(); } final Set<String> oldFiles = newHashSet(); if (sourceTargetMap.containsKey(delta.getUri())) { oldFiles.addAll(sourceTargetMap.get(delta.getUri())); } final Set<String> newFiles = newHashSet(); IFileSystemAccess fileSystemAccess = getConfiguredFileSystemAccess(srcGenFolder, new IAcceptor<String>() { @Override public void accept(String fileName) { oldFiles.remove(fileName); newFiles.add(fileName); } }); if (delta.getNew() == null) { handleDeletion(delta, context, fileSystemAccess); } else { try { handleChangedContents(delta, context, fileSystemAccess); } catch (Exception e) { logger.error("Error during compilation of '" + delta.getUri() + "'.", e); } } for (String removeFile : oldFiles) { fileSystemAccess.deleteFile(removeFile); } if (!newFiles.isEmpty()) { sourceTargetMap.put(delta.getUri(), newFiles); } } }
From source file:org.eclipse.xtext.builder.JDTAwareEclipseResourceFileSystemAccess2.java
License:Open Source License
/** * @since 2.6/* w ww. j av a 2 s . co m*/ */ protected void addToSourceFolders(IContainer container) throws JavaModelException { IJavaProject jp = JavaCore.create(container.getProject()); if (jp.exists() && !jp.isOnClasspath(container)) { IPackageFragmentRoot currentSource = jp .findPackageFragmentRoot(jp.getPath().append(getCurrentSource())); if (currentSource != null) { IClasspathEntry currentClasspathEntry = currentSource.getRawClasspathEntry(); if (currentClasspathEntry != null) { insertClasspathEntry(container, currentClasspathEntry, jp); return; } } addClasspathEntry(container, jp); } }
From source file:org.eclipse.xtext.builder.JDTAwareSourceFolderProvider.java
License:Open Source License
@Override public List<? extends IContainer> getSourceFolders(IProject project) { List<IContainer> sourceFolders = Lists.newArrayList(); IJavaProject javaProject = JavaCore.create(project); IClasspathEntry[] classpath;//from w w w .j a v a 2s . c om if (!javaProject.exists()) { return Collections.emptyList(); } try { classpath = javaProject.getRawClasspath(); } catch (JavaModelException e) { log.error("Error determining source folders for project " + project.getName(), e); return Collections.emptyList(); } for (IClasspathEntry entry : classpath) { if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { IPath path = entry.getPath(); // see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=436371 if (path.segmentCount() == 1) { sourceFolders.add(project); } else { sourceFolders.add(project.getWorkspace().getRoot().getFolder(entry.getPath())); } } } return sourceFolders; }
From source file:org.eclipse.xtext.builder.smap.XbaseLineBreakpoint.java
License:Open Source License
private IJavaProject computeJavaProject(IJavaStackFrame stackFrame) { ILaunch launch = stackFrame.getLaunch(); if (launch == null) { return null; }/* w w w . j av a 2s .c om*/ ISourceLocator locator = launch.getSourceLocator(); if (locator == null) return null; Object sourceElement = null; try { if (locator instanceof ISourceLookupDirector && !stackFrame.isStatic()) { IJavaType thisType = stackFrame.getThis().getJavaType(); if (thisType instanceof IJavaReferenceType) { String[] sourcePaths = ((IJavaReferenceType) thisType).getSourcePaths(null); if (sourcePaths != null && sourcePaths.length > 0) { sourceElement = ((ISourceLookupDirector) locator).getSourceElement(sourcePaths[0]); } } } } catch (DebugException e) { DebugPlugin.log(e); } if (sourceElement == null) { sourceElement = locator.getSourceElement(stackFrame); } if (!(sourceElement instanceof IJavaElement) && sourceElement instanceof IAdaptable) { Object element = ((IAdaptable) sourceElement).getAdapter(IJavaElement.class); if (element != null) { sourceElement = element; } } if (sourceElement instanceof IJavaElement) { return ((IJavaElement) sourceElement).getJavaProject(); } else if (sourceElement instanceof IResource) { IJavaProject project = JavaCore.create(((IResource) sourceElement).getProject()); if (project.exists()) { return project; } } return null; }