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

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

Introduction

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

Prototype

int K_SOURCE

To view the source code for org.eclipse.jdt.core IPackageFragmentRoot K_SOURCE.

Click Source Link

Document

Kind constant for a source path root.

Usage

From source file:org.eclipse.vjet.eclipse.javalaunch.utils.EclipseResourceUtils.java

License:Open Source License

/**
 * Find the source folder for this resource. For instance if the resource is
 * in "/src/main/java/com/ebay/blogs/login" then return "src/main/java"
 * //from   w w  w .j a v  a2s. co m
 * To do this we must iterate through all the package fragments and look for
 * source folders. If this is the source folder for the resource then remove
 * the source folder path.
 * 
 * @param resource
 * @param jProject
 * @return
 */
protected static IPath getResourcePath(IResource resource, IJavaProject jProject) {

    /**
     */
    if (jProject != null) {
        try {
            IPackageFragmentRoot[] packageRoots = jProject.getPackageFragmentRoots();
            if (packageRoots != null) {

                // Look through the package fragment roots
                for (IPackageFragmentRoot packageFragmentRoot : packageRoots) {

                    // If this is a source folder
                    if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {

                        // If this is the source folder for the resource we are interested in.
                        if (packageFragmentRoot.getPath().isPrefixOf(resource.getFullPath())) {

                            return packageFragmentRoot.getPath();
                        }
                    }
                }
            }
        } catch (JavaModelException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }

    return null;

}

From source file:org.eclipse.wb.internal.core.utils.jdt.core.CodeUtils.java

License:Open Source License

/**
 * @return the {@link IPackageFragmentRoot} that is parent of given {@link IJavaElement} or first
 *         {@link IPackageFragmentRoot} of {@link IJavaProject}.
 *//* w ww.  j  a  v a  2 s .  com*/
public static IPackageFragmentRoot getPackageFragmentRoot(IJavaElement element) throws JavaModelException {
    if (element != null) {
        // try to find valid parent IPackageFragmentRoot
        {
            IPackageFragmentRoot root = (IPackageFragmentRoot) element
                    .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
            if (root != null && root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                return root;
            }
        }
        // use IPackageFragmentRoot of IJavaProject
        {
            IJavaProject javaProject = element.getJavaProject();
            if (javaProject != null && javaProject.exists()) {
                for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
                    if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                        return root;
                    }
                }
            }
        }
    }
    // invalid element
    return null;
}

From source file:org.eclipse.wb.tests.designer.core.TestProject.java

License:Open Source License

public IPackageFragmentRoot getSourceFolder() throws CoreException {
    IPackageFragmentRoot[] packageRoots = m_javaProject.getPackageFragmentRoots();
    for (IPackageFragmentRoot packageRoot : packageRoots) {
        if (packageRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
            return packageRoot;
        }//from  www  . jav a 2 s.c o m
    }
    throw new IllegalStateException("Can not find source folder.");
}

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

License:Open Source License

public static IResource[] getJavaProjectSrcFolders(IProject project) {
    IJavaProject javaProject = getJavaProject(project);
    if (javaProject != null) {
        try {/* w  w  w.  jav a 2 s.  c  o m*/
            List<IResource> sources = new ArrayList<IResource>();
            IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
            IPackageFragmentRoot root = null;
            for (int i = 0; i < roots.length; i++) {
                root = roots[i];
                if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                    sources.add(root.getCorrespondingResource());
                }
            }
            return sources.toArray(IMultiResourceProvider.EMPTY_RESOURCE);
        } catch (JavaModelException e) {
            Trace.trace(Trace.SEVERE, (new StringBuilder("Error getting Java project src for project '"))
                    .append(project.getName()).append("'").toString(), e);
        }
    }
    return null;
}

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.  ja  v  a 2 s  . co m*/
        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

private IPackageFragmentRoot[] getSourceFolders() throws JavaModelException {
    // Build scope using prereq projects but only source folders
    if (javaProject instanceof JavaProject) {
        return getSourceFolders((JavaProject) javaProject);
    } else {/*from   w w w .  j  a va2s .  c  o m*/
        IPackageFragmentRoot[] allRoots = javaProject.getAllPackageFragmentRoots();
        int length = allRoots.length, size = 0;
        IPackageFragmentRoot[] allSourceFolders = new IPackageFragmentRoot[length];
        for (int i = 0; i < length; i++) {
            if (allRoots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
                allSourceFolders[size++] = allRoots[i];
            }
        }
        if (size < length) {
            System.arraycopy(allSourceFolders, 0, allSourceFolders = new IPackageFragmentRoot[size], 0, size);
        }
        return allSourceFolders;
    }
}

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

License:Open Source License

/**
 * @since 2.9//from w  ww.j  a v a  2s .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 {/*from www  . j  av  a 2s .  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 {/*from w  w  w  .j a  va  2 s . com*/
        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 va  2 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;
}