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.xtext.ui.util.JdtClasspathUriResolver.java

License:Open Source License

protected URI findResourceInWorkspace(IJavaProject javaProject, URI classpathUri) throws CoreException {
    if (javaProject.exists()) {
        String packagePath = classpathUri.trimSegments(1).path();
        String fullPath = classpathUri.path();
        String fileName = classpathUri.lastSegment();
        IPath filePath = new Path(fileName);
        String packageName = isEmpty(packagePath) ? "" : packagePath.substring(1).replace('/', '.');
        for (IPackageFragmentRoot packageFragmentRoot : javaProject.getAllPackageFragmentRoots()) {
            IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(packageName);
            if (packageFragment.exists()) {
                IResource packageFragmentResource = packageFragment.getResource();
                if (packageFragmentResource instanceof IContainer) {
                    IFile file = ((IContainer) packageFragmentResource).getFile(filePath);
                    if (file.exists())
                        return createPlatformResourceURI(file);
                } else { // jar file or external class folder
                    if (packageFragmentRoot.isArchive()) { // jar file
                        Object[] nonJavaResources = getNonJavaResources(packageFragmentRoot, packageFragment);
                        for (Object nonJavaResource : nonJavaResources) {
                            IJarEntryResource jarEntryResource = (IJarEntryResource) nonJavaResource;
                            if (fullPath.equals(jarEntryResource.getFullPath().toString())) {
                                IResource packageFragmentRootResource = packageFragmentRoot.getResource();
                                if (packageFragmentRootResource != null) { // we have a resource - use nested platform/resource
                                    URI packageFragmentRootURI = createPlatformResourceURI(
                                            packageFragmentRootResource);
                                    URI result = createArchiveURI(packageFragmentRootURI, fullPath);
                                    return result;
                                } else {
                                    // no resource - use file uri
                                    IPath packageFragmentRootPath = packageFragmentRoot.getPath();
                                    URI packageFragmentRootURI = URI
                                            .createFileURI(packageFragmentRootPath.toString());
                                    URI result = createArchiveURI(packageFragmentRootURI, fullPath);
                                    return result;
                                }/*  ww  w. j a  va2 s . co  m*/
                            }
                        }
                    } else if (packageFragmentRoot.isExternal()) { // external class folder
                        Object[] nonJavaResources = getNonJavaResources(packageFragmentRoot, packageFragment);
                        for (Object nonJavaResource : nonJavaResources) {
                            IJarEntryResource jarEntryResource = (IJarEntryResource) nonJavaResource;
                            if (fileName.equals(jarEntryResource.getName())) {
                                IResource packageFragmentRootResource = ((ExternalPackageFragmentRoot) packageFragmentRoot)
                                        .resource();
                                IPath absolutePath = packageFragmentRootResource.getFullPath();
                                absolutePath = absolutePath.append(fullPath);
                                return createPlatformResourceURI(absolutePath);
                            }
                        }
                    }
                }
            }
        }
        // not found in a source folder - look for a resource relative to project root
        // of this project or one of its dependencies
        URI result = findResourceInProjectRoot(javaProject, classpathUri.path(), Sets.<String>newHashSet());
        if (result != null) {
            return result;
        }
    }
    return classpathUri;
}

From source file:org.eclipse.xtext.ui.util.JdtClasspathUriResolver.java

License:Open Source License

private URI findResourceInProjectRoot(IJavaProject javaProject, String path, Set<String> visited)
        throws CoreException {
    boolean includeAll = visited.isEmpty();
    if (visited.add(javaProject.getElementName())) {
        IProject project = javaProject.getProject();
        IResource resourceFromProjectRoot = project.findMember(path);
        if (resourceFromProjectRoot != null && resourceFromProjectRoot.exists()) {
            return createPlatformResourceURI(resourceFromProjectRoot);
        }/* w  w  w  .  j a  v  a 2s. co m*/
        for (IClasspathEntry entry : javaProject.getResolvedClasspath(true)) {
            if (entry.getEntryKind() == IClasspathEntry.CPE_PROJECT) {
                if (includeAll || entry.isExported()) {
                    IResource referencedProject = project.getWorkspace().getRoot().findMember(entry.getPath());
                    if (referencedProject != null && referencedProject.getType() == IResource.PROJECT) {
                        IJavaProject referencedJavaProject = JavaCore.create((IProject) referencedProject);
                        if (referencedJavaProject.exists()) {
                            URI result = findResourceInProjectRoot(referencedJavaProject, path, visited);
                            if (result != null) {
                                return result;
                            }
                        }
                    }
                    break;
                }
            }
        }
    }
    return null;
}

From source file:org.eclipse.xtext.ui.workspace.JdtProjectConfig.java

License:Open Source License

@Override
public Set<? extends ISourceFolder> getSourceFolders() {
    try {/*from  ww  w . java  2 s .  co m*/
        final IJavaProject javaProject = JavaCore.create(this.getProject());
        boolean _exists = javaProject.exists();
        boolean _not = (!_exists);
        if (_not) {
            return CollectionLiterals.<ISourceFolder>emptySet();
        }
        final IClasspathEntry[] classpath = javaProject.getRawClasspath();
        final Function1<IClasspathEntry, Boolean> _function = (IClasspathEntry it) -> {
            int _entryKind = it.getEntryKind();
            return Boolean.valueOf((_entryKind == IClasspathEntry.CPE_SOURCE));
        };
        final Iterable<IClasspathEntry> sourceEntries = IterableExtensions.<IClasspathEntry>filter(
                ((Iterable<IClasspathEntry>) Conversions.doWrapArray(classpath)), _function);
        final Function1<IClasspathEntry, String> _function_1 = (IClasspathEntry it) -> {
            return it.getPath().removeFirstSegments(1).toString();
        };
        final Iterable<String> sourceFolders = IterableExtensions.<IClasspathEntry, String>map(sourceEntries,
                _function_1);
        final Function1<String, EclipseSourceFolder> _function_2 = (String it) -> {
            IProject _project = this.getProject();
            return new EclipseSourceFolder(_project, it);
        };
        return IterableExtensions.<EclipseSourceFolder>toSet(
                IterableExtensions.<String, EclipseSourceFolder>map(sourceFolders, _function_2));
    } catch (Throwable _e) {
        throw Exceptions.sneakyThrow(_e);
    }
}

From source file:org.eclipse.xtext.xbase.ui.builder.XbaseBuilderConfigurationBlock.java

License:Open Source License

protected String javaValue(final String javaPreference) {
    IJavaProject javaProject = JavaCore.create(getProject());
    if (javaProject != null && javaProject.exists() && javaProject.getProject().isAccessible()) {
        return javaProject.getOption(javaPreference, true);
    } else {// w  ww. j  av  a2 s.c om
        return JavaCore.getOption(javaPreference);
    }
}

From source file:org.eclipse.xtext.xbase.ui.builder.XbaseBuilderPreferenceAccess.java

License:Open Source License

public JavaVersion getJavaVersion(Object context, IPreferenceStore preferenceStore) {
    boolean useCompilerSource = preferenceStore.getBoolean(PREF_USE_COMPILER_SOURCE);
    if (useCompilerSource) {
        IJavaProject javaProject = JavaCore.create(context instanceof IProject ? (IProject) context : null);
        String compilerSource;/*from  w ww  .j  a  v a 2  s .  co m*/
        if (javaProject != null && javaProject.exists() && javaProject.getProject().isAccessible()) {
            compilerSource = javaProject.getOption(JavaCore.COMPILER_SOURCE, true);
        } else {
            compilerSource = JavaCore.getOption(JavaCore.COMPILER_SOURCE);
        }
        return fromCompilerSourceLevel(compilerSource);
    } else {
        String stringValue = preferenceStore.getString(PREF_JAVA_VERSION);
        try {
            return JavaVersion.valueOf(stringValue);
        } catch (IllegalArgumentException exception) {
            // Fall back to default value
        }
    }
    return JavaVersion.JAVA5;
}

From source file:org.eclipse.xtext.xbase.ui.editor.XbaseEditorInputRedirector.java

License:Open Source License

/**
 * @param an input/* w w  w  . j a va2s.  c  o  m*/
 * 
 * @return the original source for an editor input that points to an Xtext resource copied to the output folder, the given input otherwise
 */
public IEditorInput findOriginalSourceForOuputFolderCopy(final IEditorInput input) {
    try {
        final IFile resource = ResourceUtil.getFile(input);
        if ((resource != null)) {
            boolean _isValid = this.fileExtensionProvider.isValid(resource.getFullPath().getFileExtension());
            if (_isValid) {
                final IJavaProject project = JavaCore.create(resource.getProject());
                boolean _exists = project.exists();
                if (_exists) {
                    boolean _isPrefixOf = project.getOutputLocation().isPrefixOf(resource.getFullPath());
                    if (_isPrefixOf) {
                        final IPath relative = resource.getFullPath()
                                .removeFirstSegments(project.getOutputLocation().segmentCount());
                        final Function1<IPackageFragmentRoot, Boolean> _function = (
                                IPackageFragmentRoot it) -> {
                            try {
                                int _kind = it.getKind();
                                return Boolean.valueOf((_kind == IPackageFragmentRoot.K_SOURCE));
                            } catch (Throwable _e) {
                                throw Exceptions.sneakyThrow(_e);
                            }
                        };
                        Iterable<IPackageFragmentRoot> _filter = IterableExtensions
                                .<IPackageFragmentRoot>filter(((Iterable<IPackageFragmentRoot>) Conversions
                                        .doWrapArray(project.getPackageFragmentRoots())), _function);
                        for (final IPackageFragmentRoot source : _filter) {
                            {
                                final IPath fullPath = source.getCorrespondingResource()
                                        .getProjectRelativePath().append(relative);
                                final IFile newFile = resource.getProject().getFile(fullPath);
                                boolean _exists_1 = newFile.exists();
                                if (_exists_1) {
                                    return new FileEditorInput(newFile);
                                }
                            }
                        }
                    }
                    final Function1<IClasspathEntry, Boolean> _function_1 = (IClasspathEntry it) -> {
                        int _entryKind = it.getEntryKind();
                        return Boolean.valueOf((_entryKind == IClasspathEntry.CPE_SOURCE));
                    };
                    Iterable<IClasspathEntry> _filter_1 = IterableExtensions.<IClasspathEntry>filter(
                            ((Iterable<IClasspathEntry>) Conversions.doWrapArray(project.getRawClasspath())),
                            _function_1);
                    for (final IClasspathEntry sourceFolder : _filter_1) {
                        if (((sourceFolder.getOutputLocation() != null)
                                && sourceFolder.getOutputLocation().isPrefixOf(resource.getFullPath()))) {
                            final IPath relative_1 = resource.getFullPath()
                                    .removeFirstSegments(sourceFolder.getOutputLocation().segmentCount());
                            final IPackageFragmentRoot source_1 = IterableExtensions
                                    .<IPackageFragmentRoot>head(((Iterable<IPackageFragmentRoot>) Conversions
                                            .doWrapArray(project.findPackageFragmentRoots(sourceFolder))));
                            final IPath fullPath = source_1.getCorrespondingResource().getProjectRelativePath()
                                    .append(relative_1);
                            final IFile newFile = resource.getProject().getFile(fullPath);
                            boolean _exists_1 = newFile.exists();
                            if (_exists_1) {
                                return new FileEditorInput(newFile);
                            }
                        }
                    }
                }
            }
        }
        return input;
    } catch (Throwable _e) {
        throw Exceptions.sneakyThrow(_e);
    }
}

From source file:org.eclipse.xtext.xbase.ui.editor.XbaseResourceForEditorInputFactory.java

License:Open Source License

@Override
protected boolean isValidationDisabled(URI uri, IStorage storage) {
    if (storage instanceof IFile) {
        IFile file = (IFile) storage;// w  ww .ja va2 s. c  o  m
        IJavaProject javaProject = JavaCore.create(file.getProject());
        if (javaProject == null || !javaProject.exists() || !javaProject.isOpen()) {
            return true;
        }
        if (!canBuild(uri, storage)) {
            return true;
        }
    }
    return super.isValidationDisabled(uri, storage);
}

From source file:org.eclipse.xtext.xbase.ui.launching.JavaElementDelegate.java

License:Open Source License

protected IJavaElement getJavaElementForXtextEditor(IEditorPart editor) {
    if (!(editor instanceof XtextEditor))
        return null;
    IJavaProject jp = null;
    if (editor.getEditorInput() instanceof IFileEditorInput) {
        IFile file = ((IFileEditorInput) editor.getEditorInput()).getFile();
        if (!fileExtensionProvider.isValid(file.getFileExtension())) {
            return null;
        }/*ww w . ja  v a  2s.c o  m*/
        jp = JavaCore.create(file.getProject());
        if (jp == null || !jp.exists() || !jp.isOpen())
            return null;
    } else {
        return null;
    }
    XtextEditor xtextEditor = (XtextEditor) editor;
    ISelection selection = xtextEditor.getSelectionProvider().getSelection();
    if (!(selection instanceof ITextSelection))
        return null;
    final int offset = ((ITextSelection) selection).getOffset();
    IJavaElement func = xtextEditor.getDocument().readOnly(new IUnitOfWork<IJavaElement, XtextResource>() {
        @Override
        public IJavaElement exec(XtextResource state) throws Exception {
            return findJavaElement(state, offset);
        }
    });
    return func;
}

From source file:org.eclipse.xtext.xbase.ui.tests.editor.AbstractXbaseContentAssistBugTest.java

License:Open Source License

@Override
public IJavaProject getJavaProject(final ResourceSet resourceSet) {
    final String projectName = this.getProjectName();
    IJavaProject javaProject = JavaProjectSetupUtil.findJavaProject(projectName);
    if (((javaProject == null) || (!javaProject.exists()))) {
        try {/*  www  .  ja  v  a  2 s  . c o m*/
            this.demandCreateProject = AbstractXbaseUITestCase.createPluginProject(projectName);
            javaProject = JavaProjectSetupUtil.findJavaProject(projectName);
        } catch (final Throwable _t) {
            if (_t instanceof CoreException) {
                final CoreException e = (CoreException) _t;
                String _message = e.getMessage();
                String _plus = ("cannot create java project due to: " + _message);
                String _plus_1 = (_plus + " / ");
                String _plus_2 = (_plus_1 + e);
                Assert.fail(_plus_2);
            } else {
                throw Exceptions.sneakyThrow(_t);
            }
        }
    }
    return javaProject;
}

From source file:org.eclipse.xtext.xbase.ui.tests.editor.ContentAssistInBlockTest.java

License:Open Source License

@Override
public IJavaProject getJavaProject(ResourceSet resourceSet) {
    IJavaProject javaProject = findJavaProject(PROJECT_NAME);
    if (javaProject == null || !javaProject.exists()) {
        try {//from  w w w .  j av a2s  .c o  m
            demandCreateProject = AbstractXbaseUITestCase.createPluginProject(PROJECT_NAME);
            javaProject = findJavaProject(PROJECT_NAME);
        } catch (CoreException e) {
            fail("cannot create java project due to: " + e.getMessage() + " / " + e);
        }
    }
    return javaProject;
}