Example usage for org.eclipse.jdt.core IPackageFragmentRoot getKind

List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getKind

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragmentRoot getKind.

Prototype

int getKind() throws JavaModelException;

Source Link

Document

Returns this package fragment root's kind encoded as an integer.

Usage

From source file:org.eclipse.wst.xml.search.editor.util.JdtUtils.java

License:Open Source License

public static IJarEntryResource[] getJavaResourcesFileFromBinary(IProject project, String jarNamePattern,
        String packageName, String fileName) {
    Collection<IJarEntryResource> files = new ArrayList<IJarEntryResource>();
    IJavaProject javaProject = getJavaProject(project);
    if (javaProject != null) {
        try {/*from   w  w  w. j ava2s .com*/
            IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
            IPackageFragmentRoot root = null;
            for (int i = 0; i < roots.length; i++) {
                root = roots[i];
                if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
                    if (StringUtils.isEmpty(jarNamePattern) || root.getElementName().contains(jarNamePattern)) {
                        Object[] nonJavaResources = null;
                        if (packageName != null) {
                            IPackageFragment fragment = root.getPackageFragment(packageName);
                            if (fragment != null) {
                                nonJavaResources = fragment.getNonJavaResources();
                            }
                        } else {
                            nonJavaResources = root.getNonJavaResources();
                        }
                        if (nonJavaResources != null) {
                            Object nonJavaResource = null;
                            for (int j = 0; j < nonJavaResources.length; j++) {
                                nonJavaResource = nonJavaResources[j];
                                if (nonJavaResource instanceof IJarEntryResource) {
                                    IJarEntryResource r = (IJarEntryResource) nonJavaResource;
                                    if (r.isFile() && r.getName().contains(fileName)) {
                                        files.add(r);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } catch (JavaModelException e) {
            Trace.trace(Trace.SEVERE, (new StringBuilder("Error getting Java project src for project '"))
                    .append(project.getName()).append("'").toString(), e);
        }
    }
    return files.toArray(new IJarEntryResource[files.size()]);
}

From source file:org.eclipse.xtend.ide.builder.XtendParallelBuilderParticipant.java

License:Open Source License

public List<IPath> getSourceFolderPathes(IProject project) {
    List<IPath> sourceFolder = Lists.newArrayList();
    try {/* w w w.j  a  v  a  2  s .com*/
        if (project.isOpen() && project.hasNature(JavaCore.NATURE_ID)) {
            IJavaProject javaProject = JavaCore.create(project);
            List<IPackageFragmentRoot> packageFragmentRoots = Arrays
                    .asList(javaProject.getPackageFragmentRoots());
            for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) {
                if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
                    IPath path = packageFragmentRoot.getPath();
                    sourceFolder.add(path);
                }
            }
        }
    } catch (JavaModelException e) {
        if (!e.isDoesNotExist())
            logger.error(e.getMessage(), e);
    } catch (CoreException e) {
        logger.error(e.getMessage(), e);
    }
    return sourceFolder;
}

From source file:org.eclipse.xtext.common.types.access.jdt.JdtTypeProvider.java

License:Open Source License

/**
 * @since 2.9/*  www  .  j  a  va 2 s . c o  m*/
 */
protected boolean canLink(IType type) throws JavaModelException {
    IndexedJvmTypeAccess indexedJvmTypeAccess = this.getIndexedJvmTypeAccess();
    if (indexedJvmTypeAccess != null && indexedJvmTypeAccess.isIndexingPhase(getResourceSet())) {
        IResource underlyingResource = type.getUnderlyingResource();
        if (underlyingResource == null) {
            return true;
        }
        for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                IResource srcUnderlyingResource = root.getUnderlyingResource();
                if (srcUnderlyingResource != null && srcUnderlyingResource.contains(underlyingResource)) {
                    return false;
                }
            }
        }
        return true;
    }
    return true;
}

From source file:org.eclipse.xtext.common.types.ui.trace.JarEntryAwareTrace.java

License:Open Source License

protected AbsoluteURI resolvePath(IJavaProject javaProject, SourceRelativeURI path) {
    try {//  ww  w  .ja v  a  2  s . c  o  m
        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 List<String> getPackageFragmentRootHandles(IJavaProject project) {
    List<String> result = Lists.newArrayList();
    List<String> binaryAndNonLocalFragments = Lists.newArrayList();
    try {//ww w .  j a  va 2 s  .  co m
        IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
        result = Lists.newArrayListWithCapacity(roots.length);
        for (IPackageFragmentRoot root : roots) {
            if (root != null && !JavaRuntime.newDefaultJREContainerPath()
                    .isPrefixOf(root.getRawClasspathEntry().getPath())) {
                if (root.getKind() == IPackageFragmentRoot.K_SOURCE && project.equals(root.getJavaProject())) {
                    // treat local sources with higher priority
                    // see Java behavior in SameClassNamesTest
                    result.add(root.getHandleIdentifier());
                } else {
                    binaryAndNonLocalFragments.add(root.getHandleIdentifier());
                }
            }
        }
    } catch (JavaModelException e) {
        if (!e.isDoesNotExist()) {
            log.error("Cannot find rootHandles in project " + project.getProject().getName(), e);
        }
    }
    result.addAll(binaryAndNonLocalFragments);
    return result;
}

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;/*from  w w w  .  j  a va2 s.  c o 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();
        }//from  w w w  .  jav a 2 s  .com
    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();
        }/*from ww w.  j  a va2s . co  m*/
    }
    return null;
}

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

License:Open Source License

/**
 * @param an input/*ww w.  j  a  v a  2  s.co  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.imports.MultiOrganizeImportsHandler.java

License:Open Source License

private void collectRelevantFiles(IPackageFragmentRoot root, Multimap<IProject, IFile> result)
        throws JavaModelException {
    if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
        IJavaElement[] children = root.getChildren();
        for (int i = 0; i < children.length; i++) {
            collectRelevantFiles((IPackageFragment) children[i], result);
        }/*from w  w  w  .  j  a v  a  2 s  .co  m*/

    }
}