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

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

Introduction

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

Prototype

IPackageFragmentRoot[] getPackageFragmentRoots() throws JavaModelException;

Source Link

Document

Returns all of the package fragment roots contained in this project, identified on this project's resolved classpath.

Usage

From source file:org.eclipse.virgo.ide.export.BundleExportUtils.java

License:Open Source License

/**
 * Find manifest file given a java project
 *
 * @param project//from  w w w . j ava2 s.  com
 * @return
 */
public static IResource getOutputManifestFile(IJavaProject project) {
    try {

        Set<IPath> outputPaths = new HashSet<IPath>();
        outputPaths.add(project.getOutputLocation());
        IPackageFragmentRoot[] roots = project.getPackageFragmentRoots();
        for (IPackageFragmentRoot root : roots) {
            if (root != null) {
                IClasspathEntry cpEntry = root.getRawClasspathEntry();
                if (cpEntry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                    IPath location = cpEntry.getOutputLocation();
                    if (location != null) {
                        outputPaths.add(location);
                    }
                }
            }
        }

        for (IPath outputPath : outputPaths) {
            IResource manifest = getManifestFile(outputPath, project.getProject());
            if (manifest != null) {
                return manifest;
            }
        }
    } catch (JavaModelException e) {
        // No error handling existed before. Are these expected?!
        throw new RuntimeException(e);
    } catch (MalformedURLException e) {
        // No error handling existed before. Are these expected?!
        throw new RuntimeException(e);
    }
    return null;
}

From source file:org.eclipse.virgo.ide.export.BundleExportUtils.java

License:Open Source License

/**
 * Create export operation given project to be exported and location of the JAR.
 *
 * @param project/*from  w  ww.  j  a v  a  2s.c  om*/
 * @param jarLocation
 * @param shell
 * @param warningMessages
 * @return
 */
public static IJarExportRunnable createExportOperation(IJavaProject project, IPath jarLocation, Shell shell,
        List<IStatus> warnings) {
    JarPackageData jarPackage = new JarPackageData();
    jarPackage.setJarLocation(jarLocation);
    jarPackage.setExportClassFiles(true);
    jarPackage.setExportJavaFiles(false);
    jarPackage.setOverwrite(true);
    jarPackage.setExportErrors(true);
    jarPackage.setExportWarnings(true);
    jarPackage.setBuildIfNeeded(true);

    Set<Object> outputFiles = new LinkedHashSet<Object>();

    try {
        Set<IClasspathEntry> entries = ServerModuleDelegate.getSourceClasspathEntries(project.getProject(),
                false);
        for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) {
            if (entries.contains(root.getRawClasspathEntry())) {
                outputFiles.add(root);
            }
        }
    } catch (JavaModelException e) {
        // TODO add error handling
        throw new RuntimeException(e);
    }
    jarPackage.setElements(outputFiles.toArray());

    setManifestFile(project, jarPackage, shell, warnings);

    return jarPackage.createJarExportRunnable(shell);
}

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 ava 2  s . 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}.
 *///from w w  w.j  a  v  a 2s . 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.wst.xml.search.editor.internal.contentassist.JavaCompletionUtils.java

License:Open Source License

private static IPackageFragment getPackageFragment(IJavaProject project, String prefix)
        throws JavaModelException {
    int dot = prefix.lastIndexOf('.');
    if (dot > -1) {
        String packageName = prefix.substring(0, dot);
        IPackageFragmentRoot aipackagefragmentroot1[];
        int l = (aipackagefragmentroot1 = project.getPackageFragmentRoots()).length;
        for (int j = 0; j < l; j++) {
            IPackageFragmentRoot root = aipackagefragmentroot1[j];
            IPackageFragment p = root.getPackageFragment(packageName);
            if (p != null && p.exists())
                return p;
        }/*w  ww  .j a  va 2 s.c  o  m*/

        IPackageFragment packages[] = project.getPackageFragments();
        IPackageFragment aipackagefragment[];
        int j1 = (aipackagefragment = packages).length;
        for (int i1 = 0; i1 < j1; i1++) {
            IPackageFragment p = aipackagefragment[i1];
            if (p.getElementName().equals(packageName))
                return p;
        }

    } else {
        IPackageFragmentRoot aipackagefragmentroot[];
        int k = (aipackagefragmentroot = project.getAllPackageFragmentRoots()).length;
        for (int i = 0; i < k; i++) {
            IPackageFragmentRoot p = aipackagefragmentroot[i];
            if (p.getKind() == 1)
                return p.getPackageFragment("");
        }

    }
    return project.getPackageFragments()[0];
}

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 {//from w w  w.j  av  a 2s.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.wst.xml.search.editor.util.JdtUtils.java

License:Open Source License

public static IJarEntryResource getJavaResourceFileFromBinary(IProject project, String jarNamePattern,
        String packageName, String fileName) {
    IJavaProject javaProject = getJavaProject(project);
    if (javaProject != null) {
        try {/*from   w  w w. ja v  a  2  s .  co  m*/
            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().startsWith(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() && fileName.equals(r.getName())) {
                                        return r;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } 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.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 {/* www.j  a va2s.c  om*/
            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 {/*from   w  w w.j a va 2s. c om*/
        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.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("/",
                                            ".");
                                }/*  w w  w .j a  v  a2 s .co m*/
                            }
                        }
                    }
                } catch (JavaModelException e) {
                    LOG.error("Error resolving expected path for XtendFile", e);
                }
            }
        }
    }
    return null;
}