Example usage for org.eclipse.jdt.core IJavaProject exists

List of usage examples for org.eclipse.jdt.core IJavaProject exists

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaProject exists.

Prototype

boolean exists();

Source Link

Document

Returns whether this Java element exists in the model.

Usage

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;
}