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

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

Introduction

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

Prototype

IPackageFragmentRoot[] getAllPackageFragmentRoots() throws JavaModelException;

Source Link

Document

Returns all of the existing package fragment roots that exist on the classpath, in the order they are defined by the classpath.

Usage

From source file:org.jboss.tools.ws.jaxrs.core.WorkbenchTasks.java

License:Open Source License

public static IPackageFragmentRoot addClasspathEntry(IJavaProject javaProject, String name,
        IProgressMonitor progressMonitor)
        throws CoreException, OperationCanceledException, InterruptedException {
    IPath path = javaProject.getProject().getLocation().append("lib").addTrailingSeparator().append(name);
    if (!path.toFile().exists() || !path.toFile().canRead()) {
        LOGGER.warn("Following library does not exist or is not readable: {} ", path.toFile());
    }/*from   www  . ja  v  a 2 s.  co  m*/
    IClasspathEntry[] classpathEntries = javaProject.getRawClasspath();
    IClasspathEntry newLibraryEntry = JavaCore.newLibraryEntry(path, null, null);
    classpathEntries = (IClasspathEntry[]) ArrayUtils.add(classpathEntries, newLibraryEntry);
    javaProject.setRawClasspath(classpathEntries, progressMonitor);
    buildProject(javaProject.getProject(), progressMonitor);
    for (IPackageFragmentRoot fragment : javaProject.getAllPackageFragmentRoots()) {
        if (fragment.getRawClasspathEntry().equals(newLibraryEntry)) {
            return fragment;
        }
    }
    return null;
}

From source file:org.jboss.tools.ws.jaxrs.core.WorkbenchUtils.java

License:Open Source License

/**
 * Iterates through the project's package fragment roots and returns the one (source or binary) which project
 * relative path matches the given path.
 * /*w  w w.  ja va2s  .c  om*/
 * @param project
 * @param path
 * @param progressMonitor
 * @return
 * @throws JavaModelException
 */
public static IPackageFragmentRoot getPackageFragmentRoot(IJavaProject project, String path,
        IProgressMonitor progressMonitor) throws JavaModelException {
    for (IPackageFragmentRoot packageFragmentRoot : project.getAllPackageFragmentRoots()) {
        final String fragmentPath = packageFragmentRoot.getPath().makeRelativeTo(project.getPath())
                .toPortableString();
        if (fragmentPath.equals(path)) {
            return packageFragmentRoot;
        }
    }
    fail("Entry with path " + path + " not found in project.");
    return null;
}

From source file:org.jboss.tools.ws.jaxrs.core.WorkbenchUtils.java

License:Open Source License

/**
 * Remove the first referenced library those absolute path contains the given name.
 * /*from   ww  w  .  ja v  a 2  s .  c om*/
 * @param javaProject
 * @param name
 * @param progressMonitor
 * @throws CoreException
 * @throws InterruptedException
 * @throws OperationCanceledException
 */
public static List<IPackageFragmentRoot> removeClasspathEntry(IJavaProject javaProject, String name,
        IProgressMonitor progressMonitor)
        throws CoreException, OperationCanceledException, InterruptedException {
    IClasspathEntry[] classpathEntries = javaProject.getRawClasspath();
    int index = 0;
    List<IPackageFragmentRoot> fragments = null;
    for (IClasspathEntry entry : classpathEntries) {
        if (entry.getPath().toFile().getAbsolutePath().contains(name)) {
            fragments = new ArrayList<IPackageFragmentRoot>();
            for (IPackageFragmentRoot fragment : javaProject.getAllPackageFragmentRoots()) {
                if (fragment.getRawClasspathEntry().equals(entry)) {
                    fragments.add(fragment);
                }
            }
            break;
        }
        index++;
    }
    if (index < classpathEntries.length) {
        classpathEntries = (IClasspathEntry[]) ArrayUtils.remove(classpathEntries, index);
        javaProject.setRawClasspath(classpathEntries, progressMonitor);
    }
    WorkbenchTasks.buildProject(javaProject.getProject(), progressMonitor);
    return fragments;
}

From source file:org.jboss.tools.ws.jaxrs.ui.wizards.JaxrsApplicationCreationWizardPage.java

License:Open Source License

/**
 * Attempts to set the defaults values from the given
 * {@link UriPathTemplateCategory}//from w w w  .  j  a  v a2  s  . c  o m
 * 
 */
private void setDefaultValues(final UriPathTemplateCategory category) {
    final IJavaProject javaProject = category.getJavaProject();
    try {
        final IPackageFragmentRoot[] packageFragmentRoots = javaProject.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) {
            if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
                setDefaultValues(packageFragmentRoot);
                break;
            }
        }
    } catch (JavaModelException e) {
        Logger.error("Failed to set the default values from project '" + javaProject.getElementName() + "'", e);
    }
}

From source file:org.jboss.tools.ws.jaxrs.ui.wizards.JaxrsResourceCreationWizardPage.java

License:Open Source License

/**
 * Attempts to set the defaults values from the given
 * {@link UriPathTemplateCategory}/*from  ww  w  .j  a  v  a  2 s. c  o  m*/
 * 
 */
private void setDefaultValues(final UriPathTemplateCategory category) {
    final IJavaProject javaProject = category.getJavaProject();
    try {
        final IPackageFragmentRoot[] packageFragmentRoots = javaProject.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) {
            if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
                setPackageFragmentRoot(packageFragmentRoot, true);
                break;
            }
        }
    } catch (JavaModelException e) {
        Logger.error("Failed to set the default values from project '" + javaProject.getElementName() + "'", e);
    }
}

From source file:org.key_project.util.jdt.JDTUtil.java

License:Open Source License

/**
 * Returns all available packages.//ww w  .ja  v a  2  s  . co  m
 * @return All packages.
 * @throws JavaModelException Occurred Exception.
 */
public static IJavaElement[] getAllPackageFragmentRoot() throws JavaModelException {
    IJavaProject[] jProjects = getAllJavaProjects();
    Set<IJavaElement> packages = new HashSet<IJavaElement>();
    for (IJavaProject jProject : jProjects) {
        IPackageFragmentRoot[] froots = jProject.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot froot : froots) {
            if (froot != null && froot.exists() && !froot.isReadOnly()) {
                IJavaElement[] children = froot.getChildren();
                for (IJavaElement element : children) {
                    packages.add(element);
                }
            }
        }
    }
    return packages.toArray(new IJavaElement[packages.size()]);
}

From source file:org.limy.eclipse.qalab.ant.UmlgraphCreator.java

License:Open Source License

/**
 * @param targetEl/*from   www  . j av a 2s  .  co  m*/
 * @param env
 * @param targetProject
 * @return Element???? true
 * @throws CoreException 
 */
private boolean createJavadocElement(XmlElement targetEl, LimyQalabEnvironment env, IProject targetProject)
        throws CoreException {

    XmlElement javadocEl = createElement(targetEl, "javadoc");

    IJavaProject javaProject = JavaCore.create(targetProject);
    IPreferenceStore store = env.getStore();

    IPackageFragmentRoot[] roots = javaProject.getAllPackageFragmentRoots();

    // v?WFNg\?[XfBNg
    boolean isEmpty = true;
    for (IPackageFragmentRoot root : roots) {
        if (root.getKind() == IPackageFragmentRoot.K_SOURCE && root.getJavaProject().equals(javaProject)) {

            IResource rootDir = root.getResource();
            if (((IContainer) rootDir).members().length > 0) {
                isEmpty = false;
            }
            XmlElement fileEl = createElement(javadocEl, "fileset", "dir", rootDir.getLocation().toString());
            fileEl.setAttribute("includes", "**/*.java");
            fileEl.setAttribute("excludes", "**/*Test.java");
        }
    }

    // \?[Xt@C??javadocvf?
    if (isEmpty) {
        targetEl.removeChild(javadocEl);
        return false;
    }

    javadocEl.setAttribute("destDir", "${dest.dir}/javadoc/" + targetProject.getName());

    javadocEl.setAttribute("Encoding", "${src.encoding}");
    javadocEl.setAttribute("classpathref", "all.classpath");
    javadocEl.setAttribute("private", "false");
    javadocEl.setAttribute("packagenames", "*");
    javadocEl.setAttribute("useexternalfile", "yes");

    XmlElement docletEl = createElement(javadocEl, "doclet");
    docletEl.setAttribute("name", "gr.spinellis.umlgraph.doclet.UmlGraph");
    docletEl.setAttribute("path", LimyQalabPluginUtils.getResourcePath("lib/UmlGraph.jar"));

    addParam(docletEl, "-collpackages", "java.util.*");
    if (store.getBoolean(LimyQalabConstants.UMLGRAPH_INFERREL)) {
        addParam(docletEl, "-inferrel", null);
    }
    if (store.getBoolean(LimyQalabConstants.UMLGRAPH_HORIZONTAL)) {
        addParam(docletEl, "-horizontal", null);
    }

    String resources = env.getStore().getString(LimyQalabConstants.EXCLUDE_JDEPENDS);
    String[] excludes = resources.split("\n");
    for (String exclude : excludes) {
        // ?K\\L java.* => ^java\..*
        // org.apache.* => ^org\.apache\..*
        if (exclude.length() > 0) {
            addParam(docletEl, "-hide", "^" + exclude.replaceAll("\\.", "\\\\.").replaceAll("\\*", ".*"));
        }
    }
    return true;
}

From source file:org.limy.eclipse.qalab.common.LimyQalabEnvironment.java

License:Open Source License

/**
 * Javav?WFNgS\?[XpX?iQ?v?WFNg?j?B/*www .  ja v  a 2  s. c o m*/
 * @param project Javav?WFNg
 * @return S\?[XpX
 * @throws JavaModelException JavafO
 */
private Collection<IJavaElement> getAllJavaElements(IJavaProject project) throws JavaModelException {

    Collection<IJavaElement> results = new ArrayList<IJavaElement>();

    IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();

    // v?WFNgS\?[XpXQ?v?WFNg?[v
    for (IPackageFragmentRoot root : roots) {
        if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
            results.add(root);
        }
    }
    return results;
}

From source file:org.limy.eclipse.qalab.common.LimyQalabEnvironment.java

License:Open Source License

/**
 * Javav?WFNg?o?fBNg?B/* www  .  j a  v  a2s.c  om*/
 * @param env 
 * @param enableRef Q?v?WFNg?
 * @return Javav?WFNg\?[XfBNg
 * @throws JavaModelException JavafO
 */
private Collection<IPath> privateGetBinPaths(LimyQalabEnvironment env, boolean enableRef)
        throws JavaModelException {

    IJavaProject project = env.getJavaProject();

    Set<IPath> results = new HashSet<IPath>();

    if (enableRef && store.getBoolean(LimyQalabConstants.ENABLE_REFPROJECT)) {

        // Q?v?WFNgL??
        IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot refRoot : roots) {
            if (refRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
                // Q?v?WFNg?[v
                IJavaProject refProject = refRoot.getJavaProject();
                LimyQalabUtils.appendProjectBinPaths(refProject, results);
            }
        }
    } else {
        // ftHgv?WFNg?ofBNg
        LimyQalabUtils.appendProjectBinPaths(project, results);
    }

    return results;
}

From source file:org.limy.eclipse.qalab.common.LimyQalabJavaUtils.java

License:Open Source License

/**
 * Javav?WFNgSCu?iJava binpXQ?v?WFNgExportCu?j?B
 * @param project Javav?WFNg//  ww w  . j a v  a  2 s  . c  o m
 * @return Cu?pX
 * @throws CoreException 
 */
public static Collection<String> getJavaLibraries(IJavaProject project) throws CoreException {

    Collection<String> results = new HashSet<String>();

    for (IPackageFragmentRoot fragment : project.getAllPackageFragmentRoots()) {

        String location = getExternalLocation(fragment);
        if (location != null) {
            results.add(location);
        }
    }

    // TODO ? Eclipse Plugin v?WFNg???A
    // ev?WFNgEclipseAjar
    // export?A?iAccessG?[?j
    // ptOprKv

    for (IProject refProject : project.getProject().getReferencedProjects()) {

        boolean isPlugin = Arrays.asList(refProject.getDescription().getNatureIds())
                .indexOf("org.eclipse.pde.PluginNature") >= 0;
        if (isPlugin) {
            IPackageFragmentRoot[] roots = JavaCore.create(refProject).getAllPackageFragmentRoots();
            for (IPackageFragmentRoot fragment : roots) {
                String location = getExternalLocation(fragment);
                if (location != null) {
                    results.add(location);
                }
            }
        }

    }

    return results;
}