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

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

Introduction

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

Prototype

IPackageFragmentRoot[] findPackageFragmentRoots(IClasspathEntry entry);

Source Link

Document

Returns the existing package fragment roots identified by the given entry.

Usage

From source file:edu.brown.cs.bubbles.bedrock.BedrockProject.java

License:Open Source License

private void addClasses(IJavaProject jp, IvyXmlWriter xw) {
    try {/*w  ww  .j  a  v  a 2s.  co m*/
        IClasspathEntry[] ents = jp.getResolvedClasspath(true);
        for (int k = 0; k < ents.length; ++k) {
            if (ents[k].getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                IPackageFragmentRoot[] rts = jp.findPackageFragmentRoots(ents[k]);
                for (int l = 0; l < rts.length; ++l) {
                    IJavaElement[] elts = rts[l].getChildren();
                    for (int m = 0; m < elts.length; ++m) {
                        if (elts[m] instanceof IPackageFragment) {
                            IPackageFragment frag = (IPackageFragment) elts[m];
                            xw.textElement("PACKAGE", frag.getElementName());
                            for (ICompilationUnit icu : frag.getCompilationUnits()) {
                                for (IType typ : icu.getTypes()) {
                                    outputType(typ, jp, xw);
                                }
                            }
                        }
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        BedrockPlugin.logE("Problem getting class list: " + e);
    }
}

From source file:fr.obeo.ariadne.ide.connector.java.internal.explorer.JavaExplorer.java

License:Open Source License

/**
 * Explores the given classpath entry of the given Java project in order to populate the Ariadne classpath
 * entry.//from w  w w  .ja  va  2 s  .  c  o  m
 * 
 * @param iJavaProject
 *            The Java project analyzed
 * @param iClasspathEntry
 *            The classpath entry of the project currently analyzed
 * @param classpathEntry
 *            The Ariadne classpath entry
 * @param monitor
 *            The progress monitor
 */
private void exploreClasspathEntry(IJavaProject iJavaProject, IClasspathEntry iClasspathEntry,
        ClasspathEntry classpathEntry, IProgressMonitor monitor) {
    try {
        IPackageFragmentRoot[] packageFragmentRoots = iJavaProject.findPackageFragmentRoots(iClasspathEntry);
        for (IPackageFragmentRoot iPackageFragmentRoot : packageFragmentRoots) {
            IJavaElement[] iJavaElements = iPackageFragmentRoot.getChildren();
            for (IJavaElement iJavaElement : iJavaElements) {
                if (iJavaElement instanceof IPackageFragment) {
                    IPackageFragment iPackageFragment = (IPackageFragment) iJavaElement;
                    this.explorePackage(classpathEntry, iPackageFragment, monitor);
                }
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
}

From source file:in.software.analytics.parichayana.core.internal.builder.ParichayanaBuilder.java

License:Open Source License

private List<ICompilationUnit> getCompilationUnits() throws JavaModelException {
    List<ICompilationUnit> compilationUnits = new ArrayList<ICompilationUnit>();
    IJavaProject javaProject = JavaCore.create(project);
    IClasspathEntry[] entries = javaProject.getRawClasspath();
    for (IClasspathEntry entry : entries) {
        if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
            IPackageFragmentRoot[] roots = javaProject.findPackageFragmentRoots(entry);
            for (IPackageFragmentRoot root : roots) {
                if (root.isArchive()) {
                    continue;
                }/* www . j  ava2 s .  c om*/
                IJavaElement[] children = root.getChildren();
                for (IJavaElement child : children) {
                    if (child instanceof IPackageFragment) {
                        IPackageFragment packageFragment = (IPackageFragment) child;
                        ICompilationUnit[] cus = packageFragment.getCompilationUnits();
                        for (ICompilationUnit cu : cus) {
                            cleanupMarkers(cu.getUnderlyingResource());
                            compilationUnits.add(cu);
                        }
                    }
                }
            }
        }
    }

    return compilationUnits;
}

From source file:info.evanchik.eclipse.felix.FelixLaunchConfiguration.java

License:Open Source License

/**
 * Gets the path to the specified bundle in the following manner:<br>
 * <br>//from ww  w .  ja  v  a 2s.  co m
 * <ol>
 * <li>If the bundle is found in the Plug-in Registry and is not a workspace
 * resource, return the path to the bundle</li>
 * <li>If the bundle is in the Plug-in Registry but is a workspace resource,
 * return the path to the path to the output location that contains the
 * package specified ({@code project/output folder})</li>
 * <li>If the bundle is not found in the Plug-in Registry then look for it
 * in the OSGi platform</li>
 * </ol>
 *
 * @param bundleName
 *            the symbolic name of the bundle
 * @param packageName
 *            the name of the package used to locate the output folder
 * @return a fully qualified path to the requested bundle or null if it does
 *         not exist
 * @throws CoreException
 */
private static String getBundlePath(String bundleName, String packageName) throws CoreException {
    final IPluginModelBase model = PluginRegistry.findModel(bundleName);
    if (model != null) {
        final IResource resource = model.getUnderlyingResource();

        if (!isWorkspaceModel(model)) {
            return model.getInstallLocation();
        }

        final IProject project = resource.getProject();
        if (project.hasNature(JavaCore.NATURE_ID)) {
            final IJavaProject jProject = JavaCore.create(project);
            final IClasspathEntry[] entries = jProject.getRawClasspath();

            for (int i = 0; i < entries.length; i++) {
                final int kind = entries[i].getEntryKind();
                if (kind == IClasspathEntry.CPE_SOURCE || kind == IClasspathEntry.CPE_LIBRARY) {
                    final IPackageFragmentRoot[] roots = jProject.findPackageFragmentRoots(entries[i]);

                    for (int j = 0; j < roots.length; j++) {
                        if (roots[j].getPackageFragment(packageName).exists()) {
                            // if source folder, find the output folder
                            if (kind == IClasspathEntry.CPE_SOURCE) {
                                IPath path = entries[i].getOutputLocation();
                                if (path == null) {
                                    path = jProject.getOutputLocation();
                                }

                                path = path.removeFirstSegments(1);

                                return project.getLocation().append(path).toOSString();
                            }
                            // else if is a library jar, then get the
                            // location of the jar itself
                            final IResource jar = roots[j].getResource();
                            if (jar != null) {
                                return jar.getLocation().toOSString();
                            }
                        }
                    }
                }
            }
        }
    }

    final Bundle bundle = Platform.getBundle(bundleName);
    if (bundle != null) {
        try {
            URL url = FileLocator.resolve(bundle.getEntry("/")); //$NON-NLS-1$
            url = FileLocator.toFileURL(url);
            String path = url.getFile();
            if (path.startsWith("file:")) { //$NON-NLS-1$
                path = path.substring(5);
            }

            path = new File(path).getAbsolutePath();

            if (path.endsWith("!")) { //$NON-NLS-1$
                path = path.substring(0, path.length() - 1);
            }

            return path;
        } catch (IOException e) {
        }
    }

    return null;
}

From source file:org.apache.felix.sigil.eclipse.model.util.JavaHelper.java

License:Apache License

public static Collection<ICompilationUnit> findCompilationUnits(ISigilProjectModel project)
        throws JavaModelException {
    LinkedList<ICompilationUnit> ret = new LinkedList<ICompilationUnit>();

    IJavaProject java = project.getJavaModel();
    for (IClasspathEntry cp : findClasspathEntries(project.getBundle())) {
        IPackageFragmentRoot[] roots = java.findPackageFragmentRoots(cp);
        for (IPackageFragmentRoot rt : roots) {
            for (IJavaElement j : rt.getChildren()) {
                IPackageFragment p = (IPackageFragment) j;
                ICompilationUnit[] units = p.getCompilationUnits();
                for (ICompilationUnit u : units) {
                    ret.add(u);// w  ww . ja v  a2  s .c  o m
                }
            }
        }
    }

    return ret;
}

From source file:org.bonitasoft.studio.businessobject.core.repository.BusinessObjectModelRepositoryStore.java

License:Open Source License

protected IRegion regionWithBDM(final IJavaProject javaProject) throws JavaModelException {
    final IRegion newRegion = JavaCore.newRegion();
    final IClasspathEntry repositoryDependenciesClasspathEntry = find(asIterable(javaProject.getRawClasspath()),
            repositoryDependenciesEntry(), null);
    final IPackageFragmentRoot[] fragmentRoots = javaProject
            .findPackageFragmentRoots(repositoryDependenciesClasspathEntry);
    final IPackageFragmentRoot packageFragmentRoot = find(asIterable(fragmentRoots),
            withElementName(BDM_CLIENT_POJO_JAR_NAME), null);
    if (packageFragmentRoot != null) {
        newRegion.add(packageFragmentRoot);
    }/*from   w  w  w .  j av a2 s . c o m*/
    return newRegion;
}

From source file:org.cloudfoundry.ide.eclipse.internal.server.ui.standalone.JavaUIHelper.java

License:Open Source License

public IPackageFragment getDefaultPackageFragment() {
    IJavaProject javaProject = getJavaProject();

    if (getJavaProject() == null) {
        return null;
    }//from ww w  .  ja v  a  2 s .com

    IPackageFragmentRoot[] roots = null;
    try {

        IClasspathEntry[] entries = javaProject.getRawClasspath();

        for (IClasspathEntry entry : entries) {

            if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                roots = javaProject.findPackageFragmentRoots(entry);
                if (roots != null) {
                    break;
                }
            }
        }

    } catch (JavaModelException e) {
        CloudFoundryPlugin.logError(e);
    }

    if (roots != null) {
        IPackageFragment fragment = null;
        for (IPackageFragmentRoot root : roots) {
            try {
                IJavaElement[] members = root.getChildren();
                if (members != null) {
                    for (IJavaElement element : members) {
                        if (element instanceof IPackageFragment) {
                            IPackageFragment frag = (IPackageFragment) element;
                            if (frag.isDefaultPackage()) {
                                fragment = frag;
                                break;
                            }
                        }
                    }
                }
                if (fragment != null) {
                    break;
                }
            } catch (JavaModelException e) {
                CloudFoundryPlugin.logError(e);
            }
        }
        return fragment;
    }
    return null;
}

From source file:org.cloudfoundry.ide.eclipse.server.standalone.internal.startcommand.JavaTypeUIAdapter.java

License:Open Source License

public IPackageFragment getDefaultPackageFragment(IJavaProject javaProject) {

    if (javaProject == null) {
        return null;
    }/*  w  w w .  j  av  a2 s .c  o m*/

    List<IPackageFragmentRoot> packFragRoots = new ArrayList<IPackageFragmentRoot>();
    try {

        IClasspathEntry[] entries = javaProject.getRawClasspath();

        for (IClasspathEntry entry : entries) {

            if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                IPackageFragmentRoot[] roots = javaProject.findPackageFragmentRoots(entry);
                if (roots != null) {
                    for (IPackageFragmentRoot rt : roots) {
                        if (!packFragRoots.contains(rt)) {
                            packFragRoots.add(rt);
                        }
                    }
                }
            }
        }

    } catch (JavaModelException e) {
        CloudFoundryPlugin.log(e);
    }

    IPackageFragment fragment = null;
    for (IPackageFragmentRoot root : packFragRoots) {
        try {
            IJavaElement[] members = root.getChildren();
            if (members != null) {
                for (IJavaElement element : members) {
                    if (element instanceof IPackageFragment) {
                        IPackageFragment frag = (IPackageFragment) element;
                        if (frag.isDefaultPackage()) {
                            fragment = frag;
                            break;
                        }
                    }
                }
            }
            if (fragment != null) {
                break;
            }
        } catch (JavaModelException e) {
            CloudFoundryPlugin.log(e);
        }
    }
    return fragment;
}

From source file:org.eclim.plugin.jdt.command.launching.JavaCommand.java

License:Open Source License

private String findMainClass(IJavaProject javaProject) throws Exception {
    ArrayList<IJavaElement> srcs = new ArrayList<IJavaElement>();
    for (IClasspathEntry entry : javaProject.getResolvedClasspath(true)) {
        if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
            for (IPackageFragmentRoot root : javaProject.findPackageFragmentRoots(entry)) {
                srcs.add(root);/*from  w  w w . ja v  a2  s . co m*/
            }
        }
    }

    final ArrayList<IMethod> methods = new ArrayList<IMethod>();
    int context = IJavaSearchConstants.DECLARATIONS;
    int type = IJavaSearchConstants.METHOD;
    int matchType = SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE;
    IJavaSearchScope scope = SearchEngine.createJavaSearchScope(srcs.toArray(new IJavaElement[srcs.size()]));
    SearchPattern pattern = SearchPattern.createPattern("main(String[])", type, context, matchType);
    SearchRequestor requestor = new SearchRequestor() {
        public void acceptSearchMatch(SearchMatch match) {
            if (match.getAccuracy() != SearchMatch.A_ACCURATE) {
                return;
            }

            try {
                IMethod method = (IMethod) match.getElement();
                String[] params = method.getParameterTypes();
                if (params.length != 1) {
                    return;
                }

                if (!Signature.SIG_VOID.equals(method.getReturnType())) {
                    return;
                }

                int flags = method.getFlags();
                if (!Flags.isPublic(flags) || !Flags.isStatic(flags)) {
                    return;
                }

                methods.add(method);
            } catch (JavaModelException e) {
                // ignore
            }
        }
    };

    SearchEngine engine = new SearchEngine();
    SearchParticipant[] participants = new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() };
    engine.search(pattern, participants, scope, requestor, null);

    // if we found only 1 result, we can use it.
    if (methods.size() == 1) {
        IMethod method = methods.get(0);
        ICompilationUnit cu = method.getCompilationUnit();
        IPackageDeclaration[] packages = cu.getPackageDeclarations();
        if (packages != null && packages.length > 0) {
            return packages[0].getElementName() + "." + cu.getElementName();
        }
        return cu.getElementName();
    }
    return null;
}

From source file:org.eclipse.ajdt.internal.utils.AJDTUtils.java

License:Open Source License

private static void excludeAJfiles(IProject project) {
    IJavaProject jp = JavaCore.create(project);
    try {//  ww  w.j av  a2s.  c om
        boolean changed = false;
        IClasspathEntry[] cpEntry = jp.getRawClasspath();
        for (int i = 0; i < cpEntry.length; i++) {
            IClasspathEntry entry = cpEntry[i];
            if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                List<IPath> excludeList = new ArrayList<IPath>();
                IPackageFragmentRoot[] roots = jp.findPackageFragmentRoots(entry);
                for (int j = 0; j < roots.length; j++) {
                    IJavaElement[] rootFragments;
                    try {
                        rootFragments = roots[j].getChildren();
                        for (int k = 0; k < rootFragments.length; k++) {
                            if (rootFragments[k] instanceof IPackageFragment) {
                                IPackageFragment pack = (IPackageFragment) rootFragments[k];
                                ICompilationUnit[] files = pack.getCompilationUnits();
                                for (int l = 0; l < files.length; l++) {
                                    IResource resource = files[l].getResource();
                                    if (resource.getFileExtension().equals("aj")) { //$NON-NLS-1$
                                        IPath resPath = resource.getFullPath();
                                        int seg = resPath.matchingFirstSegments(roots[j].getPath());
                                        excludeList.add(resPath.removeFirstSegments(seg));
                                    }
                                }
                            }
                        }
                    } catch (JavaModelException e) {
                    }
                }
                if (excludeList.size() > 0) {
                    IPath[] exc = new IPath[excludeList.size()];
                    excludeList.toArray(exc);
                    IClasspathEntry classpathEntry = JavaCore.newSourceEntry(entry.getPath(), exc);
                    cpEntry[i] = classpathEntry;
                    changed = true;
                }
            }
        }
        if (changed) {
            jp.setRawClasspath(cpEntry, null);
        }
    } catch (JavaModelException e) {
    }
}